From f9188bb9194f08adb3f0c064b772ff9ac47d5f97 Mon Sep 17 00:00:00 2001 From: patbeagan1 Date: Mon, 1 Nov 2021 23:55:34 -0500 Subject: [PATCH 1/8] Adding in a choreography example --- choreography/README.md | 52 +++++++++ choreography/etc/output.png | Bin 0 -> 96176 bytes choreography/pom.xml | 67 +++++++++++ .../java/com/iluwatar/choreography/App.java | 96 ++++++++++++++++ .../iluwatar/choreography/MainService.java | 106 ++++++++++++++++++ .../iluwatar/choreography/SagaService.java | 7 ++ .../java/com/iluwatar/choreography/Util.java | 9 ++ .../events/DeliveryFailureEvent.java | 31 +++++ .../events/DeliverySuccessEvent.java | 15 +++ .../choreography/events/DroneEvent.java | 24 ++++ .../iluwatar/choreography/events/Event.java | 33 ++++++ .../choreography/events/PackageEvent.java | 17 +++ .../events/RequestScheduleDeliveryEvent.java | 14 +++ .../choreography/response/Failure.java | 21 ++++ .../iluwatar/choreography/response/OK.java | 16 +++ .../choreography/response/Response.java | 5 + .../servicedelivery/DeliveryService.java | 49 ++++++++ .../choreography/servicedrone/Drone.java | 13 +++ .../servicedrone/DroneService.java | 39 +++++++ .../choreography/servicepackage/Package.java | 19 ++++ .../servicepackage/PackageService.java | 54 +++++++++ .../com/iluwatar/choreography/AppTest.java | 39 +++++++ 22 files changed, 726 insertions(+) create mode 100644 choreography/README.md create mode 100644 choreography/etc/output.png create mode 100644 choreography/pom.xml create mode 100644 choreography/src/main/java/com/iluwatar/choreography/App.java create mode 100644 choreography/src/main/java/com/iluwatar/choreography/MainService.java create mode 100644 choreography/src/main/java/com/iluwatar/choreography/SagaService.java create mode 100644 choreography/src/main/java/com/iluwatar/choreography/Util.java create mode 100644 choreography/src/main/java/com/iluwatar/choreography/events/DeliveryFailureEvent.java create mode 100644 choreography/src/main/java/com/iluwatar/choreography/events/DeliverySuccessEvent.java create mode 100644 choreography/src/main/java/com/iluwatar/choreography/events/DroneEvent.java create mode 100644 choreography/src/main/java/com/iluwatar/choreography/events/Event.java create mode 100644 choreography/src/main/java/com/iluwatar/choreography/events/PackageEvent.java create mode 100644 choreography/src/main/java/com/iluwatar/choreography/events/RequestScheduleDeliveryEvent.java create mode 100644 choreography/src/main/java/com/iluwatar/choreography/response/Failure.java create mode 100644 choreography/src/main/java/com/iluwatar/choreography/response/OK.java create mode 100644 choreography/src/main/java/com/iluwatar/choreography/response/Response.java create mode 100644 choreography/src/main/java/com/iluwatar/choreography/servicedelivery/DeliveryService.java create mode 100644 choreography/src/main/java/com/iluwatar/choreography/servicedrone/Drone.java create mode 100644 choreography/src/main/java/com/iluwatar/choreography/servicedrone/DroneService.java create mode 100644 choreography/src/main/java/com/iluwatar/choreography/servicepackage/Package.java create mode 100644 choreography/src/main/java/com/iluwatar/choreography/servicepackage/PackageService.java create mode 100644 choreography/src/test/java/com/iluwatar/choreography/AppTest.java diff --git a/choreography/README.md b/choreography/README.md new file mode 100644 index 000000000000..9f43c3be6edd --- /dev/null +++ b/choreography/README.md @@ -0,0 +1,52 @@ +--- +layout: pattern +title: Choreography +folder: choreography +permalink: /patterns/choreography/ +categories: Microservices +language: en +tags: + - Microservices +--- + +## Intent + + + +## Explanation + +Real-world example + +> + +In plain words + +> + +Wikipedia says + +> + +**Programmatic Example** + + + +Program output: + +![alt text](./etc/output.png "Output") + +## Class diagram + + + +## Applicability + +Use the Choreography pattern when + +## Known uses + +* + +## Credits + +* \ No newline at end of file diff --git a/choreography/etc/output.png b/choreography/etc/output.png new file mode 100644 index 0000000000000000000000000000000000000000..6cadc591ead77a7e977a8ae82c9eed1522cdf1fe GIT binary patch literal 96176 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%0ApxLT{e%scs|IS7$ZAtpm=n+ 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 literal 0 HcmV?d00001 diff --git a/choreography/pom.xml b/choreography/pom.xml new file mode 100644 index 000000000000..b35463b17165 --- /dev/null +++ b/choreography/pom.xml @@ -0,0 +1,67 @@ + + + + 4.0.0 + + com.iluwatar + java-design-patterns + 1.25.0-SNAPSHOT + + choreography + + + org.junit.jupiter + junit-jupiter-engine + test + + + org.mockito + mockito-core + test + + + + + + org.apache.maven.plugins + maven-assembly-plugin + + + + + + com.iluwatar.choreography.App + + + + + + + + + diff --git a/choreography/src/main/java/com/iluwatar/choreography/App.java b/choreography/src/main/java/com/iluwatar/choreography/App.java new file mode 100644 index 000000000000..1ef9b8efcb60 --- /dev/null +++ b/choreography/src/main/java/com/iluwatar/choreography/App.java @@ -0,0 +1,96 @@ +/* + * The MIT License + * Copyright © 2014-2021 Ilkka Seppälä + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +package com.iluwatar.choreography; + +import com.iluwatar.choreography.response.Response; +import com.iluwatar.choreography.servicedelivery.DeliveryService; + +import java.util.Random; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ExecutionException; + +/** + *

+ * The choreography pattern is a way of managing operations in a microservice architecture. + *

+ *

+ * When an operation requires multiple microservices to be completed, that is called a "Saga". + * The microservices need to have a coordinator which will keep track of the information returned from each service, + * and which services still owe it information. + *

+ * There are 2 main ways of creating sagas
    + *
  1. the orchestrator pattern
  2. + *
  3. the choreography pattern
  4. + *
+ *

+ * They differ in their approach. + * The orchestrator pattern dictates everything that should happen, procedurally. + * The analogy is that an orchestra only moves forwards when the conductor bids them to - + * they should not try to do anything unless the conductor asks for it. + * In contrast, the choreographer announces to a central queue that events have happened, + * and trusts that each microservice will be able to figure out what to do next based on that knowledge. + *

+ */ +public class App { + + static String INVALID_ADDRESS = "'Middle of Nowhere'"; + + /** + * Program entry point. + * + * This starts the delivery process for 3 random addresses. + * + * @param args command line args + */ + public static void main(String[] args) throws ExecutionException, InterruptedException { + MainService mainService = new MainService(); + CompletableFuture.allOf( + CompletableFuture.runAsync(() -> { + Response post = mainService.requestDeliveryTo(getSampleAddress()); + System.out.println(post.getMessage()); + }), + CompletableFuture.runAsync(() -> { + Response post = mainService.requestDeliveryTo(getSampleAddress()); + System.out.println(post.getMessage()); + }), + CompletableFuture.runAsync(() -> { + Response post = mainService.requestDeliveryTo(getSampleAddress()); + System.out.println(post.getMessage()); + }) + ).get(); + } + + static String getSampleAddress() { + switch (Math.abs(new Random().nextInt()) % 3) { + case 0: + return DeliveryService.WALLABY_WAY; + case 1: + return DeliveryService.BUCKINGHAM; + case 2: + return INVALID_ADDRESS; + } + return null; + } +} + diff --git a/choreography/src/main/java/com/iluwatar/choreography/MainService.java b/choreography/src/main/java/com/iluwatar/choreography/MainService.java new file mode 100644 index 000000000000..af55d1928277 --- /dev/null +++ b/choreography/src/main/java/com/iluwatar/choreography/MainService.java @@ -0,0 +1,106 @@ +package com.iluwatar.choreography; + +import com.iluwatar.choreography.events.*; +import com.iluwatar.choreography.response.Failure; +import com.iluwatar.choreography.response.OK; +import com.iluwatar.choreography.response.Response; +import com.iluwatar.choreography.servicedelivery.DeliveryService; +import com.iluwatar.choreography.servicedrone.DroneService; +import com.iluwatar.choreography.servicepackage.PackageService; + +import java.util.List; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.atomic.AtomicInteger; + +public class MainService { + + /* + * These are fake services which will let us see the pattern without too much overhead + * Normally these would be network requests to other live microservices. + */ + + /** + * A service for getting a drone + */ + final DroneService droneService = new DroneService(this); + + /** + * A service for sending drones with packages out to delivery + */ + final DeliveryService deliveryService = new DeliveryService(this); + + /** + * A service for creating a package + */ + final PackageService packageService = new PackageService(this); + + /** + * Generates new sagaId values, through which we can track the flow of events through multiple microservices + */ + private final AtomicInteger sagaCounter = new AtomicInteger(); + + /** + * The method call that kicks off the whole flow. + * It creates a sagaId, and submits the first event + * + * @param address the address that we will be sending a package to + * @return the response that comes back after the saga completes - either OK or Failure + */ + public Response requestDeliveryTo(String address) { + return post(new RequestScheduleDeliveryEvent(sagaCounter.getAndIncrement(), address)); + } + + /** + * The message queue + *

+ * Events get fed into here, and other services are notified of the event + * The other services are able to submit events back to the queue as well + * + * @param event an event that signifies that some piece of work is complete + * @return the result of all the work that the current microservice has completed + */ + public Response post(Event event) { + if (event == null) { + return new Failure("No events to process!"); + } else { + CompletableFuture deferredResponse; + if (event instanceof RequestScheduleDeliveryEvent) { + deferredResponse = CompletableFuture.supplyAsync(() -> packageService.getPackage((RequestScheduleDeliveryEvent) event)); + } else if (event instanceof PackageEvent) { + deferredResponse = CompletableFuture.supplyAsync(() -> droneService.getDrone((PackageEvent) event)); + } else if (event instanceof DroneEvent) { + deferredResponse = CompletableFuture.supplyAsync(() -> deliveryService.completeDelivery((DroneEvent) event)); + } else if (event instanceof DeliverySuccessEvent) { + deferredResponse = CompletableFuture.supplyAsync(() -> new OK((DeliverySuccessEvent) event)); + } else if (event instanceof DeliveryFailureEvent) { + deferredResponse = CompletableFuture.supplyAsync(() -> { + DeliveryFailureEvent failureEvent = (DeliveryFailureEvent) event; + List.of(deliveryService, + droneService, + packageService).forEach(it -> it.onSagaFailure(failureEvent)); + return new Failure(failureEvent); + }); + } else { + deferredResponse = CompletableFuture.supplyAsync(() -> new Failure(event.prettyPrintSagaId() + "Could not handle that type of event!")); + } + return getResponse(deferredResponse); + } + } + + /** + * Helper method to await for the future to complete + * + * @param deferredResponse the response that we are waiting for + * @return the response that was promised + */ + private Response getResponse(CompletableFuture deferredResponse) { + Response response = null; + try { + response = deferredResponse.get(); + } catch (InterruptedException | ExecutionException e) { + e.printStackTrace(); + } + return response; + } +} diff --git a/choreography/src/main/java/com/iluwatar/choreography/SagaService.java b/choreography/src/main/java/com/iluwatar/choreography/SagaService.java new file mode 100644 index 000000000000..53cc64f311e0 --- /dev/null +++ b/choreography/src/main/java/com/iluwatar/choreography/SagaService.java @@ -0,0 +1,7 @@ +package com.iluwatar.choreography; + +import com.iluwatar.choreography.events.DeliveryFailureEvent; + +public interface SagaService { + void onSagaFailure(DeliveryFailureEvent failureEvent); +} diff --git a/choreography/src/main/java/com/iluwatar/choreography/Util.java b/choreography/src/main/java/com/iluwatar/choreography/Util.java new file mode 100644 index 000000000000..c4a9304c7f97 --- /dev/null +++ b/choreography/src/main/java/com/iluwatar/choreography/Util.java @@ -0,0 +1,9 @@ +package com.iluwatar.choreography; + +import com.iluwatar.choreography.events.Event; + +public class Util { + public static void performAction(Event e, String s) { + System.out.println(e.prettyPrintSagaId() + s); + } +} diff --git a/choreography/src/main/java/com/iluwatar/choreography/events/DeliveryFailureEvent.java b/choreography/src/main/java/com/iluwatar/choreography/events/DeliveryFailureEvent.java new file mode 100644 index 000000000000..92aa97ce11ed --- /dev/null +++ b/choreography/src/main/java/com/iluwatar/choreography/events/DeliveryFailureEvent.java @@ -0,0 +1,31 @@ +package com.iluwatar.choreography.events; + +import com.iluwatar.choreography.servicedrone.Drone; +import com.iluwatar.choreography.servicepackage.Package; + +import java.util.Optional; + +public class DeliveryFailureEvent extends Event { + private final String message; + private final Drone drone; + private final Package aPackage; + + public DeliveryFailureEvent(int sagaId, Drone drone, Package aPackage, String message) { + super(sagaId); + this.message = message; + this.drone = drone; + this.aPackage = aPackage; + } + + public String getMessage() { + return message; + } + + public Optional getDrone() { + return Optional.ofNullable(drone); + } + + public Optional getaPackage() { + return Optional.ofNullable(aPackage); + } +} diff --git a/choreography/src/main/java/com/iluwatar/choreography/events/DeliverySuccessEvent.java b/choreography/src/main/java/com/iluwatar/choreography/events/DeliverySuccessEvent.java new file mode 100644 index 000000000000..fc0c3241bc04 --- /dev/null +++ b/choreography/src/main/java/com/iluwatar/choreography/events/DeliverySuccessEvent.java @@ -0,0 +1,15 @@ +package com.iluwatar.choreography.events; + +public class DeliverySuccessEvent extends Event { + private final String message; + + public DeliverySuccessEvent(int sagaId, String message) { + super(sagaId); + this.message = message; + } + + public String getMessage() { + return message; + } +} + diff --git a/choreography/src/main/java/com/iluwatar/choreography/events/DroneEvent.java b/choreography/src/main/java/com/iluwatar/choreography/events/DroneEvent.java new file mode 100644 index 000000000000..ef8b1b6b4d4e --- /dev/null +++ b/choreography/src/main/java/com/iluwatar/choreography/events/DroneEvent.java @@ -0,0 +1,24 @@ +package com.iluwatar.choreography.events; + +import com.iluwatar.choreography.servicedrone.Drone; +import com.iluwatar.choreography.servicepackage.Package; + +public class DroneEvent extends Event { + + private final Drone drone; + private final Package aPackage; + + public DroneEvent( int sagaId, Drone drone, Package aPackage) { + super(sagaId); + this.drone = drone; + this.aPackage = aPackage; + } + + public Drone getDrone() { + return drone; + } + + public Package getaPackage() { + return aPackage; + } +} diff --git a/choreography/src/main/java/com/iluwatar/choreography/events/Event.java b/choreography/src/main/java/com/iluwatar/choreography/events/Event.java new file mode 100644 index 000000000000..17bc9f8dd9b3 --- /dev/null +++ b/choreography/src/main/java/com/iluwatar/choreography/events/Event.java @@ -0,0 +1,33 @@ +package com.iluwatar.choreography.events; + +public class Event { + private final int sagaId; + + public Event(int sagaId) { + this.sagaId = sagaId; + } + + public int getSagaId() { + return sagaId; + } + + public String prettyPrintSagaId() { + switch (getSagaId()) { + case 0: + return (ANSI_BG_RED + "Thread 1 " + ANSI_RESET + "| "); + case 1: + return (ANSI_BG_GREEN + "Thread 2 " + ANSI_RESET + "| "); + case 2: + return (ANSI_BG_BLUE + "Thread 3 " + ANSI_RESET + "| "); + } + return "Unknown| "; + } + + public static final String ANSI_RESET = "\u001B[0m"; + public static final String ANSI_BG_RED = "\u001B[41m"; + public static final String ANSI_BG_GREEN = "\u001B[42m"; + public static final String ANSI_BG_BLUE = "\u001B[44m"; +} + + + diff --git a/choreography/src/main/java/com/iluwatar/choreography/events/PackageEvent.java b/choreography/src/main/java/com/iluwatar/choreography/events/PackageEvent.java new file mode 100644 index 000000000000..2b2f6ccb9f46 --- /dev/null +++ b/choreography/src/main/java/com/iluwatar/choreography/events/PackageEvent.java @@ -0,0 +1,17 @@ +package com.iluwatar.choreography.events; + +import com.iluwatar.choreography.servicepackage.Package; + +public class PackageEvent extends Event { + + private final Package aPackage; + + public PackageEvent(int sagaId, Package aPackage) { + super(sagaId); + this.aPackage = aPackage; + } + + public Package getaPackage() { + return aPackage; + } +} diff --git a/choreography/src/main/java/com/iluwatar/choreography/events/RequestScheduleDeliveryEvent.java b/choreography/src/main/java/com/iluwatar/choreography/events/RequestScheduleDeliveryEvent.java new file mode 100644 index 000000000000..e4b484465066 --- /dev/null +++ b/choreography/src/main/java/com/iluwatar/choreography/events/RequestScheduleDeliveryEvent.java @@ -0,0 +1,14 @@ +package com.iluwatar.choreography.events; + +public class RequestScheduleDeliveryEvent extends Event { + private final String address; + + public RequestScheduleDeliveryEvent(int sagaId, String address) { + super(sagaId); + this.address = address; + } + + public String getAddress() { + return address; + } +} diff --git a/choreography/src/main/java/com/iluwatar/choreography/response/Failure.java b/choreography/src/main/java/com/iluwatar/choreography/response/Failure.java new file mode 100644 index 000000000000..cefa2528c50d --- /dev/null +++ b/choreography/src/main/java/com/iluwatar/choreography/response/Failure.java @@ -0,0 +1,21 @@ +package com.iluwatar.choreography.response; + +import com.iluwatar.choreography.events.DeliveryFailureEvent; +import com.iluwatar.choreography.events.Event; + +public class Failure implements Response { + private final String message; + + public Failure(String message) { + this.message = message; + } + + public Failure(DeliveryFailureEvent event) { + this.message = event.prettyPrintSagaId() + event.getMessage(); + } + + @Override + public String getMessage() { + return message; + } +} diff --git a/choreography/src/main/java/com/iluwatar/choreography/response/OK.java b/choreography/src/main/java/com/iluwatar/choreography/response/OK.java new file mode 100644 index 000000000000..fc9fa2dc98a0 --- /dev/null +++ b/choreography/src/main/java/com/iluwatar/choreography/response/OK.java @@ -0,0 +1,16 @@ +package com.iluwatar.choreography.response; + +import com.iluwatar.choreography.events.DeliverySuccessEvent; + +public class OK implements Response { + private final String message; + + public OK(DeliverySuccessEvent event) { + this.message = event.prettyPrintSagaId() + event.getMessage(); + } + + @Override + public String getMessage() { + return message; + } +} diff --git a/choreography/src/main/java/com/iluwatar/choreography/response/Response.java b/choreography/src/main/java/com/iluwatar/choreography/response/Response.java new file mode 100644 index 000000000000..b8e476f7ae83 --- /dev/null +++ b/choreography/src/main/java/com/iluwatar/choreography/response/Response.java @@ -0,0 +1,5 @@ +package com.iluwatar.choreography.response; + +public interface Response { + String getMessage(); +} diff --git a/choreography/src/main/java/com/iluwatar/choreography/servicedelivery/DeliveryService.java b/choreography/src/main/java/com/iluwatar/choreography/servicedelivery/DeliveryService.java new file mode 100644 index 000000000000..114ba52782f2 --- /dev/null +++ b/choreography/src/main/java/com/iluwatar/choreography/servicedelivery/DeliveryService.java @@ -0,0 +1,49 @@ +package com.iluwatar.choreography.servicedelivery; + +import com.iluwatar.choreography.MainService; +import com.iluwatar.choreography.SagaService; +import com.iluwatar.choreography.events.DeliveryFailureEvent; +import com.iluwatar.choreography.events.DeliverySuccessEvent; +import com.iluwatar.choreography.events.DroneEvent; +import com.iluwatar.choreography.response.Response; + +import java.util.List; + +import static com.iluwatar.choreography.Util.performAction; + +public class DeliveryService implements SagaService { + + public static String WALLABY_WAY = "42 Wallaby Way, Sydney, Australia"; + + public static String BUCKINGHAM = "Buckingham Palace, London, England"; + final private List validAddresses = List.of( + WALLABY_WAY, + BUCKINGHAM + ); + + private final MainService mainService; + + public DeliveryService(MainService mainService) { + this.mainService = mainService; + } + + public Response completeDelivery(DroneEvent e) { + String address = e.getaPackage().getAddress(); + if (validAddresses.contains(address)) { + performAction(e, "Drone " + e.getDrone().getId() + " is flying to " + address + "..."); + performAction(e, "Dropping off package " + e.getaPackage().getId() + "..."); + performAction(e, "Returning to base..."); + return mainService.post(new DeliverySuccessEvent(e.getSagaId(), "Delivery Completed")); + } else { + return mainService.post(new DeliveryFailureEvent(e.getSagaId(), + e.getDrone(), + e.getaPackage(), + "Could not complete delivery! Address not found.")); + } + } + + @Override + public void onSagaFailure(DeliveryFailureEvent failureEvent) { + // no cleanup to perform, as this is the terminal step + } +} diff --git a/choreography/src/main/java/com/iluwatar/choreography/servicedrone/Drone.java b/choreography/src/main/java/com/iluwatar/choreography/servicedrone/Drone.java new file mode 100644 index 000000000000..d223bd332022 --- /dev/null +++ b/choreography/src/main/java/com/iluwatar/choreography/servicedrone/Drone.java @@ -0,0 +1,13 @@ +package com.iluwatar.choreography.servicedrone; + +public class Drone { + private final long id; + + public Drone(long id) { + this.id = id; + } + + public long getId() { + return id; + } +} diff --git a/choreography/src/main/java/com/iluwatar/choreography/servicedrone/DroneService.java b/choreography/src/main/java/com/iluwatar/choreography/servicedrone/DroneService.java new file mode 100644 index 000000000000..67e998b523b2 --- /dev/null +++ b/choreography/src/main/java/com/iluwatar/choreography/servicedrone/DroneService.java @@ -0,0 +1,39 @@ +package com.iluwatar.choreography.servicedrone; + +import com.iluwatar.choreography.MainService; +import com.iluwatar.choreography.SagaService; +import com.iluwatar.choreography.events.DeliveryFailureEvent; +import com.iluwatar.choreography.events.DroneEvent; +import com.iluwatar.choreography.events.PackageEvent; +import com.iluwatar.choreography.response.Response; + +import java.util.concurrent.atomic.AtomicInteger; + +import static com.iluwatar.choreography.Util.performAction; + +public class DroneService implements SagaService { + + final AtomicInteger counter = new AtomicInteger(); + private final MainService mainService; + + public DroneService(MainService mainService) { + this.mainService = mainService; + } + + int getNextId() { + return counter.getAndIncrement(); + } + + public Response getDrone(PackageEvent e) { + int id = getNextId(); + performAction(e, "Contacting drone " + id + " at base..."); + performAction(e, "Drone " + id + " is preparing for pickup..."); + return mainService.post(new DroneEvent(e.getSagaId(), new Drone(id), e.getaPackage())); + } + + @Override + public void onSagaFailure(DeliveryFailureEvent failureEvent) { + failureEvent.getDrone().ifPresent(drone -> + performAction(failureEvent, "Setting drone " + drone.getId() + " to standby...")); + } +} diff --git a/choreography/src/main/java/com/iluwatar/choreography/servicepackage/Package.java b/choreography/src/main/java/com/iluwatar/choreography/servicepackage/Package.java new file mode 100644 index 000000000000..170e6333c0b5 --- /dev/null +++ b/choreography/src/main/java/com/iluwatar/choreography/servicepackage/Package.java @@ -0,0 +1,19 @@ +package com.iluwatar.choreography.servicepackage; + +public class Package { + private final long id; + private final String address; + + public Package(long id, String address) { + this.id = id; + this.address = address; + } + + public String getAddress() { + return address; + } + + public long getId() { + return id; + } +} diff --git a/choreography/src/main/java/com/iluwatar/choreography/servicepackage/PackageService.java b/choreography/src/main/java/com/iluwatar/choreography/servicepackage/PackageService.java new file mode 100644 index 000000000000..97550b2879e2 --- /dev/null +++ b/choreography/src/main/java/com/iluwatar/choreography/servicepackage/PackageService.java @@ -0,0 +1,54 @@ +package com.iluwatar.choreography.servicepackage; + +import com.iluwatar.choreography.MainService; +import com.iluwatar.choreography.SagaService; +import com.iluwatar.choreography.events.DeliveryFailureEvent; +import com.iluwatar.choreography.events.PackageEvent; +import com.iluwatar.choreography.events.RequestScheduleDeliveryEvent; +import com.iluwatar.choreography.response.Response; + +import java.util.Random; +import java.util.concurrent.atomic.AtomicLong; + +import static com.iluwatar.choreography.Util.performAction; + +public class PackageService implements SagaService { + final AtomicLong counter = new AtomicLong(); + private final MainService mainService; + Random random = new Random(); + + public PackageService(MainService mainService) { + this.mainService = mainService; + } + + long getNextId() { + return counter.getAndIncrement(); + } + + boolean checkItemIsInStock() { + return Math.abs(random.nextInt() % 3) != 0; + } + + public Response getPackage(RequestScheduleDeliveryEvent event) { + performAction(event, "Gathering items..."); + if (checkItemIsInStock()) { + long id = getNextId(); + performAction(event, "Gathering packing materials..."); + performAction(event, "Packing..."); + performAction(event, "Addressing to " + event.getAddress() + "..."); + performAction(event, "Moving package " + id + " to pickup location in warehouse. "); + return mainService.post(new PackageEvent(event.getSagaId(), new Package(id, event.getAddress()))); + } else { + return mainService.post(new DeliveryFailureEvent(event.getSagaId(), + null, + null, + "Delivery failed! Item is not in stock!")); + } + } + + @Override + public void onSagaFailure(DeliveryFailureEvent failureEvent) { + failureEvent.getaPackage().ifPresent(aPackage -> + performAction(failureEvent, "Putting items from package " + aPackage.getId() + " back...")); + } +} diff --git a/choreography/src/test/java/com/iluwatar/choreography/AppTest.java b/choreography/src/test/java/com/iluwatar/choreography/AppTest.java new file mode 100644 index 000000000000..e8560a5524ee --- /dev/null +++ b/choreography/src/test/java/com/iluwatar/choreography/AppTest.java @@ -0,0 +1,39 @@ +/* + * The MIT License + * Copyright © 2014-2021 Ilkka Seppälä + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +package com.iluwatar.choreography; + +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; + +/** + * Application test. + */ +class AppTest { + + @Test + void shouldExecuteWithoutException() { + assertDoesNotThrow(() -> App.main(new String[]{})); + } +} From 5ca887247a931ff452e9d5ee1eaf9ea33b833604 Mon Sep 17 00:00:00 2001 From: patbeagan1 Date: Tue, 2 Nov 2021 23:02:20 -0500 Subject: [PATCH 2/8] Updating the readme --- choreography/README.md | 88 ++++++++++++++++++++++++++++++++++-------- 1 file changed, 71 insertions(+), 17 deletions(-) diff --git a/choreography/README.md b/choreography/README.md index 9f43c3be6edd..36a6608e508a 100644 --- a/choreography/README.md +++ b/choreography/README.md @@ -1,35 +1,74 @@ --- -layout: pattern -title: Choreography -folder: choreography -permalink: /patterns/choreography/ -categories: Microservices -language: en -tags: - - Microservices +layout: pattern title: Choreography folder: choreography permalink: /patterns/choreography/ categories: Microservices +language: en tags: + +- Microservices + --- ## Intent - +The `choreography` pattern is a way to organize microservices which need to work together. It is usually contrasted with +the `orchestration` pattern. Using either of these patterns allows us to create `sagas` which can create more complex +experiences than individual microservices can themselves. ## Explanation -Real-world example +The `choreography` pattern organizes microservices by having them emit `events` to a central bus when they have +completed their work. That central bus will forward the events to other microservices, which will decide how best to +proceed based on the contents of the event. + +This is in contrast with an `orchestrator`, which controls the entire flow. The orchestrator will call each microservice +in turn, and make sure that is waits for all the relevant information before it proceeds with downstream requests. + +A `saga` is the term for a series of microservice transactions that take place in an organized way. They encapsulate a +number of steps in a larger operation, such as delivering packages from a warehouse to a consumer. + +### Real world example + +They are named for their real-world counterparts. + +> Choreographers teach groups of people how to dance, but the choreographer does not need to be present for the dance +> to be performed. The dancers can react to events, such as the beats in a song, and still perform in unison. -> +> Orchestras are groups of musicians conducted by a conductor. The conductor needs to be present for the musicians to +> be able to perform in unison. He will not move forward to the next part of the song until all the musicians are ready. In plain words -> +> The choreography pattern allows microservices to organize themselves, by providing a central messaging bus for them to communicate + +> The orchestrator pattern has a service that manages other microservices, by calling on them when it needs them. Wikipedia says -> +> [Service choreography](https://en.wikipedia.org/wiki/Service_choreography) in business computing is a form of service +> composition in which the interaction protocol between several partner services is defined from a global perspective. +> The idea underlying the notion of service choreography can be summarised as follows: "Dancers dance following a global +> scenario without a single point of control" **Programmatic Example** +In this example, we are ordering a package from a packaging facility. After placing an order, there are 3 steps involved +in getting the package to your house: + +- Preparing the package +- Provisioning a delivery drone +- Sending the package out for delivery + +Each of these steps has been broken out into a "microservice" which has been approximated by an async call. Each +microservice has a bus that it is able to post to, to notify other microservices of the results of its latest operation. +Broadly, each microservice should have a `SuccessEvent` and a `FailureEvent`. + +In the following example, the delivery `saga` can fail in 2 different ways: +- The packaging service can report that the item is not in stock +- The delivery service can report that the requested address is not found + +When either of these happens, a failure event specific to that service is broadcasted, and each microservice is given +the opportunity to perform cleanup related to its own data. In the case of the "address not found" failure in the +following scenario, each of the services is given the chance to reverse its transaction when the saga moves into a +failure state. Program output: @@ -37,16 +76,31 @@ Program output: ## Class diagram +![](https://docs.microsoft.com/en-us/azure/architecture/patterns/_images/choreography-example.png) +Image from https://docs.microsoft.com/en-us/azure/architecture/patterns/choreography +## Applicability + +Use the Choreography pattern when: +- You need to organize a set of microservices to perform an operation that has multiple steps +- You need to avoid having a single point of failure for your service +- You need to develop applications at scale -## Applicability +In contrast, you should use the orchestrator pattern when: -Use the Choreography pattern when +- You need to organize a set of microservices to perform an operation that has multiple steps +- Your use case is simple and not subject to change +- You have limited network bandwidth ## Known uses -* +* It is a supported microservice pattern on Azure ## Credits -* \ No newline at end of file +* https://techrocking.com/microservices-choreography-event-pattern/ +* https://docs.microsoft.com/en-us/azure/architecture/patterns/choreography +* https://bluesoft.com/orchestration-vs-choreography-different-patterns-of-getting-systems-to-work-together/ +* https://medium.com/ingeniouslysimple/choreography-vs-orchestration-a6f21cfaccae +* https://dev.to/theagilemonkeys/saga-patterns-by-example-fod +* https://medium.com/ci-t/how-to-chain-azure-functions-c11da1048353 \ No newline at end of file From c576a0b3c2eb824ee91c863d7ae61fcbae197cb9 Mon Sep 17 00:00:00 2001 From: patbeagan1 Date: Tue, 2 Nov 2021 23:05:07 -0500 Subject: [PATCH 3/8] Cleaning up --- .../src/main/java/com/iluwatar/choreography/App.java | 2 +- .../src/main/java/com/iluwatar/choreography/Util.java | 8 ++++++-- .../java/com/iluwatar/choreography/events/DroneEvent.java | 2 +- .../main/java/com/iluwatar/choreography/events/Event.java | 7 ++----- .../java/com/iluwatar/choreography/response/Failure.java | 1 - 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/choreography/src/main/java/com/iluwatar/choreography/App.java b/choreography/src/main/java/com/iluwatar/choreography/App.java index 1ef9b8efcb60..fdae5bb64597 100644 --- a/choreography/src/main/java/com/iluwatar/choreography/App.java +++ b/choreography/src/main/java/com/iluwatar/choreography/App.java @@ -58,7 +58,7 @@ public class App { /** * Program entry point. - * + *

* This starts the delivery process for 3 random addresses. * * @param args command line args diff --git a/choreography/src/main/java/com/iluwatar/choreography/Util.java b/choreography/src/main/java/com/iluwatar/choreography/Util.java index c4a9304c7f97..7acf176c08bb 100644 --- a/choreography/src/main/java/com/iluwatar/choreography/Util.java +++ b/choreography/src/main/java/com/iluwatar/choreography/Util.java @@ -3,7 +3,11 @@ import com.iluwatar.choreography.events.Event; public class Util { - public static void performAction(Event e, String s) { + public static void performAction(Event e, String s) { System.out.println(e.prettyPrintSagaId() + s); } -} + public static final String ANSI_RESET = "\u001B[0m"; + public static final String ANSI_BG_RED = "\u001B[41m"; + public static final String ANSI_BG_GREEN = "\u001B[42m"; + public static final String ANSI_BG_BLUE = "\u001B[44m"; +} \ No newline at end of file diff --git a/choreography/src/main/java/com/iluwatar/choreography/events/DroneEvent.java b/choreography/src/main/java/com/iluwatar/choreography/events/DroneEvent.java index ef8b1b6b4d4e..79038a616994 100644 --- a/choreography/src/main/java/com/iluwatar/choreography/events/DroneEvent.java +++ b/choreography/src/main/java/com/iluwatar/choreography/events/DroneEvent.java @@ -8,7 +8,7 @@ public class DroneEvent extends Event { private final Drone drone; private final Package aPackage; - public DroneEvent( int sagaId, Drone drone, Package aPackage) { + public DroneEvent(int sagaId, Drone drone, Package aPackage) { super(sagaId); this.drone = drone; this.aPackage = aPackage; diff --git a/choreography/src/main/java/com/iluwatar/choreography/events/Event.java b/choreography/src/main/java/com/iluwatar/choreography/events/Event.java index 17bc9f8dd9b3..2c3aca48f9e5 100644 --- a/choreography/src/main/java/com/iluwatar/choreography/events/Event.java +++ b/choreography/src/main/java/com/iluwatar/choreography/events/Event.java @@ -1,5 +1,7 @@ package com.iluwatar.choreography.events; +import static com.iluwatar.choreography.Util.*; + public class Event { private final int sagaId; @@ -22,11 +24,6 @@ public String prettyPrintSagaId() { } return "Unknown| "; } - - public static final String ANSI_RESET = "\u001B[0m"; - public static final String ANSI_BG_RED = "\u001B[41m"; - public static final String ANSI_BG_GREEN = "\u001B[42m"; - public static final String ANSI_BG_BLUE = "\u001B[44m"; } diff --git a/choreography/src/main/java/com/iluwatar/choreography/response/Failure.java b/choreography/src/main/java/com/iluwatar/choreography/response/Failure.java index cefa2528c50d..c35370c1c79b 100644 --- a/choreography/src/main/java/com/iluwatar/choreography/response/Failure.java +++ b/choreography/src/main/java/com/iluwatar/choreography/response/Failure.java @@ -1,7 +1,6 @@ package com.iluwatar.choreography.response; import com.iluwatar.choreography.events.DeliveryFailureEvent; -import com.iluwatar.choreography.events.Event; public class Failure implements Response { private final String message; From ef1c265c539765b1cf567a8d797d556900de817d Mon Sep 17 00:00:00 2001 From: patbeagan1 Date: Tue, 2 Nov 2021 23:07:40 -0500 Subject: [PATCH 4/8] Updating post title --- choreography/README.md | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/choreography/README.md b/choreography/README.md index 36a6608e508a..667e66306d1f 100644 --- a/choreography/README.md +++ b/choreography/README.md @@ -1,9 +1,12 @@ --- -layout: pattern title: Choreography folder: choreography permalink: /patterns/choreography/ categories: Microservices -language: en tags: - +layout: pattern +title: Choreography +folder: choreography +permalink: /patterns/choreography/ +categories: Microservices +language: en +tags: - Microservices - --- ## Intent From 3137112783d121068dbc889a7e7e3421abbbadb2 Mon Sep 17 00:00:00 2001 From: patbeagan1 Date: Tue, 2 Nov 2021 23:10:52 -0500 Subject: [PATCH 5/8] replacing output image --- choreography/etc/output.png | Bin 96176 -> 192346 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/choreography/etc/output.png b/choreography/etc/output.png index 6cadc591ead77a7e977a8ae82c9eed1522cdf1fe..59800cae6bcf94ba3c6f1bc2f5d84d0ba03602ac 100644 GIT binary patch literal 192346 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

    EquN2A8l=I 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 z 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 SqQH|J0W_ZJJgrr=jrl*t(*$S$ literal 96176 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%0ApxLT{e%scs|IS7$ZAtpm=n+ zl5Z`d-Xx$d*)Ls2=wU;ynKSoA*KQ_`r*uylbyID$WLFpZ7HWnB?d3{ln^D~tq4q!R z=t_)~uEU|@bP31zqm7LcZJUiRd>eg2(4zj=dYgaMBM_}O{(%!amgxQq!+JNqc3eq5 zs%qz@{dulIYmZ#$YqgSclcCM82P<;t!D*AR{ip}geM`Tre3LQd zWu%V*PjjfL-_ZaJe#N>eu=A~_7Cqo!KAJau<`XV$m`au*%WJ@_(Xhm*W&)qi$uJjK zGj)PI=<}T>?I#%09JddAN!gya%9t;?0X?O|rL6FNjMYT{7evGzT0K3Kcyv(zGzkL*=!Qmf>37~}{@xKO?&ds%S_SuwP0)@8$qTy4Go^w%DIaKK^m%>zBO!;9b6lHmGy}0P?12 zFZ8f@L9z0s^ts*0G?TFUcg<4}aY%+?2L9^zR=q zASVL<8ZbE{NBud`a<-^58)HUS?zHt;!CWWKK>{gCj%tQ9c}ew^sTfYo7%Uhb612T(QurqT%fi~2Xk6XV zNO1LU;jfJ?Kev~Ent;uo5@{pi=PL9?sYkLuxTSEHC*q?Ww=SEWG4Pz9iM6-Q7wxU} zm6CT>GQ4}Z(p{izC+A#SOoisH(jUiOe05LC?Ef2a0%2fv{S`MGLmxN%;v_A2 zYYy99dN?w5KAp8zV_u?Z$4kPrqF$)PQ!oSQ+#*tX*%|apz)r znwlx-^x(A=!1i>UnKyb<1v1!%;H63;gpQsZ1zsO^`+0<#K?Lxc#=*0q`xT8bZRo4R z_pnWZyHL#Ndf2ho?`dlzDQkQ>`*HZf*kbKr-TBnLd*A`I_q7HJUJ=ea@B-E|<2Zl{y_4-vfCkcE?9S+RMg!AwDRISkV!=&9?v7xnR zAbdl{eHoKk{^?+;FB&v1dg&neb4Gc97LD<(Ags0RFDF0N{$x7^7itAccZGDfs|qG)&iXIv{=3o|NM zIlFab%_+!ugE?LGV9?gGT=tC~E57%gcV>%$$@;^+KU=okuS~cF9f6*^C8;e`uPWk zi6)AMN9{nMS~B0&6`i4*`YeytVPs@IvZRi(fq8k!w7*wE<%7?JjJ;d+-$y54*d&^m z_1eenfdXjar}CIx(kFL1S@8{W=SdP*1v5s^LMeS&sqga`7}(M+{6?2qB@?8-8rOle z`{?NnQQdBSkZKej0Ke?vD?KQ1x1fm#%oJBmMCAr=Y;V35g1(A8!17WIueib$15o)H z#7GQh4j*^Xas&Xd*9zqQqqQ~5ys$vN&Nn$gH=*`E&Ak{(XId4MX5ilx}kf@hWS-H(%8cAu}O zFjk^WcF0By-~*Mc_s*LL3_GW1xFODM;-bA>CT=cPo~%dztT}?LY?=1P+T7aS+wV3F z2FT~R&bi4-BODehRfhv6-Je>7ZDr1x$40&30BToFl=>%ySo**VgIREd_X=g2lAqJt z$7bB6wRfs~^22u9hAkhb-Ozg!K_@rAW4&63eg2Tm;p>q(={eP(wk{#UboOEnmj2yV zoKCN);oFElR58_!aWK~^n!%Cx<^1S|cE7g%%q!3~oU(){ntyaRvV{=G*SZczuJ3KN zDfNyfzZUeAgu)LI<K_m`-?cNBjDm73csL0_B6;9!@zyrMNdX9$8cOS_x&K;r8vrHq)AVe*`W=0#% z<80ma9hD94@<6F)!1Y`|zeh0G23PWZR*T2-06N1mMKTwi^M1hzubcVwXH72IVxUpPio6cAoW?GkCXU%=f>tGP0fM>> zvO21}(WUFhw;zYU`5h&u2{R|?lz!u1#ep$|y4EV??Ohb5c!xg|zWmpwl|D<(mL(o+ zw|d;U4)lQQzN^C#R44NX{T4hPFQVoRmFm!#ClBp4jy(u+SMIMS=cdgmOmov+HbcDz zyKRonBw9$!Ft*o{*<~xt4n^V zu`uJblS7q5e(H;5Xn>JfIc_*2%LgMkw2gU&?DQ*SRCi-hHLbbpSyD()BsK6OFPEA< z$GqdJ(PmGpY@eOsm~fPi9X9M+B7w7xQ|4hB9MYH8KZ9T}Vq}W|^Aq0{$zloDnr0>p zXSWs(UN*@0xNo#3Er!+EGfvQzE*_bmB$`Wo-JxmgYPxzW5HPZQJmZGnlq{Po)3XbMvk>)O-kvnQz%;7>yZlFJ6vj`po$M$` zaxYn5W3HdxA0LO|(?P4O3(lSSuoZ`gcM5ojQwyHD<0<*`*}vJH^^0pSSEcf>X1)m( zK-;W!d%8Qtp$g*{81~mFv48H=$#u;h_6qQnPu|AF{P}`Bs|q@u<{A}IYo;wV7)pBA zqe71eOjurFP-Cfy+rj}ze>F1-s5}VO%p`CU_tlF%qn}9}o!Rr$z+Tl|e`3C`r>B*e z(Y4Af8MrVuewiGhm829edQi6?fE-4~j13Ji%<9?wzMG!jL%___E6!|!{95_2QXJ4E zj)^Pi2=x_zHxfLi6fh`RfQjOQ}x(`MfqhDi0!{Qyz^e zO53Sg1k+isbC}BxQ&9pI_~(_Zr>W%TGUDxP)I0q`lOJd+gu53_w!z0`9(g ztgED!XKj0(UQ2-QJiD(rSXh^_(80=fdXZc{CiJckL#vQVLy_hwu>R(uy{pvjSgQH41gou6r7yvB5fJ0ZrRI z5)-1(@#C*ldxb>;Ox|+hQd>kEu9j1 z%wap3D@#7Q!U6vTBN~p^z`DO){N_aB6NpIq+I>)2ES+vnPwbOa%=ehnr>Tjz!^9oCaQvUzxPBly@r<${3>_6%@2V1w!UF_mZin}~E|Ce) zXM)A|g4YcD6%T@I&!z^4H012{Xs79aB(U<_GiD(7EyHf|bEhxkoNK#ze)mfPF>-t5 zxOaT5zMw;VWiGarB;EbZpgOZ}i(TEgaEOy~BR8wZfj4C!yJ&&?8t;RW^3-wDc-Gle zpCYyo=+k(#Os8d`tL8h9X4BsYnh!tFzVm*Fxq?!Djdoq;y3>Q~jQ-jM%gEf?hMeN^x zwyo8Apj`HDp(!fAc>Lu|RsX2(xtbGPT!HyNvQobVD#AXX`+~^ln6;nO-=d=e zx1uexyC)EVOdq22L0R3p^;?(#a25PaU!_0!0sZ9hWx?yBsj#B$?8T`zR{Y(knkxIv zE~=)SfY-l19b)AtmCS1PFBZENK3yL?3Uc`ZOxRbJagQzi;Du}x2>g5NEIrv{tvU_z<#;t-$_leH z4`+&Le37%G+zoQ#n6@iFG-1)72PeE7R1(EAF#f6q`KnK?tt{g))5k;S5Dc^ngR67|F zeG>+GQ>&a&PAm{TU*dLtpY!C2NDu>(29v0)-P)o1te6y+HZm6+wxm^_Jh0wetL$7q zJOd5)IrIeIbrk0 z3Vu>XQNwJw{$S6O(vj?X^nkK%`!(s~8Z(-|1#39wN^4g3~nIfXBq`pZ^gc~Aj| zK+OdMkM(}1%nCeYN4A+?ubhO{&2~`HZ)*jwA*iWj?`>Pvm!TQO>Qntegg8Hnjw3~% zRWHmpaSDtuLrkSMFU-F~q#iaR99rlnG^QmW{kKu(q#K)Wn%`-6VTXB=IGiIL^uNU^ zd>wO|;r}th$P0v8I{f{&|C3P=2PSk3P~a@6{c{JDiSzjFJ64}CTjhQZ1A;>3P;;t;Lv+N0R@ zvsLFW6oe>QV-@n}82dj{FOQ2u*KE&iFAb%%&G>OzHho;mEa+z9$In_~Y!LFLg|?H z3-V`$`7o?H#orbh(89jq!FL%S+g{@}WK@G@yeo~~ z)mdq5lz%QcRYzq_M}FFzQhG=p#&?f9Kd(V>dDu8+;Q%T&3EXt+-a`|fN0(4PoI8KG z5bx~^^^@6ISl*ub^Acr*Qkgkrw*GvYtP5VK_Dqhbe9B^x@KrygCudz{M!mpc$Tb`L-A+Wn0knXM2nk+%r`% zU#Ar3A;A}XlC7jqT>p?{sVe3+^-GhLSW+EFUHLGtvc}+LDm5wygu2YsLuy}L6nE-q zX%g*~YG`cE1U+J=hFY@eoP=O%sAur4=!XvTgVlAInHHN`?+p{S+X|;YKPf90C=g~= zN^7b~+qE3F!C}^)DFu(f%7g}Ha!wUXn2!701LkzIFGZQ({azUK4 zL7rim1{ZNhYQ9{}yZ6%DaWzQGV?T20+nViE7s#y$EU=#(nOROk>R+`+B37(2j3Izv z=O+T%JZD6b8_kF78-dyK7{oE>t@r>Z&!JD`r6EX}M+TB}c8F={ltE>z@~bW32qn9L z&T_v;Nkxk1n^~-*UQgBnR(cNMgo3Re#nUHL4CkvZv z3kRwrniwz~{&f8@n)KwG&~Mn2P5HCBcg!30udcs9)2xWBy7bboM~wq9ug^=BhDixG zV_*7Sl-e;i9l}b;T+NsL;+jPVlj^D&HEm3L-!v`iNs}uQbyn@FUW``2CTWmC zoslT06w&)QvBL9tXdz2IA+=F@K~v58X<|ol#d>h-1oYP0^p1#Ko};^iW+KI-KHBrNv?X+Oahv95&rX-hIJoK)G(^oJ;5i`Y2_c7j;+TGbG8mg%eQXF-e#`N_T- zg-L&x^1#-rL%Tn{n9WvC@lF0ro5f@UGv%5pvfNh1s#rkCG0`l>Qn&lf*NN8WYPNO(8N@ z(ssQV*(FXKV>xjtz9;cw*pLW&@9ddXM1<(^tc-;lRWJ|K^H1 zet~uQ-W>#xl$6we()FW+*DVRi>_yp9$d{0#FLqW1->aQ-rM!$D8yRR(fEqgERMUp7 zxpg0Yr<~QIww(vTNA<$T{D^2>G}8M~EmXsni<#A*YHxtTvKhOzm7kdXO^zxEK>iY| z)xqv~m{YUAm zmucg#A%Jtet^2^@V-KSe1c2~3w;j3Kk(#p6L7iQ8c>)Qj@-xcbfXwQw zoa^(8SS8g6z`Ep}@7e+;YpjZLHr50y#j`ZQn zDp>sfmA1Z@;p-Au@h{B(KE@XzUdz)>(-`pXYtCJFs-sRDF8-YUn;F{gSEcG3;6spK zYC~OFzQoV=9wn&K^U)tqgxyP&=(5z^wRA2i!!^U0@pu}|q+ z@7D(%+C550efyz08q`}Gl-~)~Vf!ySKMX`DLV0iYZM3kzuj}o1)oA*S5P8kelzm(v zXMhbfO!FhX_M>z&a86^;wY3wFaipnz{{#hmm|ZDaZ$K!eYR*4<^|jXhlBFeDF99nv zLy6pggE>2>sv5O3w(|L=QR6I&6bToLi;Hh&M@N)oct?Ij?#zV!_!k@n{#)=;{WG^I zas$@N8zck?r|(o)3G%K^cc@F`^c<+zGxAQYh2je?joApsOo!GnQBkx5y}HAs%2enj zo&EjD+BjBgsE6*GTYg}cp?zx}S?tR8jWAzn(jsKZ-n14!2|po7R@q#7Kfyue@B~>L zj}{H!%lWP>#zGlqs_mlE<*A`Jxsd~vhzS4@vRSZB`JnZzC|X$kY$@?pvW+M&mxtDB z;y2_BA!2!t)QdmZ<>cJg?WfQ8_1pD9*p&M-6O zI&{5{B}elaakMbdA_mbIUFJeo%)zD^xRV}{Ajh)?`Bgf*D;UM2?p+n?e;GG2rtE}J zGeLz5>k7P0DT%j8>1>wV)SM;%sFodp-#DUbX!HoV>QX<7T0ufZ?4oJkKoC}ZhVJm~ zcS3f);hI-4c<*gm3PTnV%?D{4US*E7#@IGL*mIKJUG!ZI2}4vE7Zy4ZDf3-z*$8LD!|)dK4iSdt1@ioSI)5L7kUowbYvQu9 z*(;23IV}}iG8$OB4oIe_Ozy5=rfUrxGeZK<)Gsap3crIkh#w(uts7GGJ(5Wx_D9HY zVa?*f+-@X)W4-_LFXY3$-hNO9OJCmwvqDfGGRb^ac{vg|q~1W=fI&sC*;%DTu$%wysIP=3 zU78z!XR}8=UT~7syGb4E^F4#|8vqH;Uw2_1wGyOi0@Z`?BqfnSI+*K*X370jGxPfR zCREMXA8URN#+r&{$BQxHu4(fWNE5Mq%ge=V%ZMgM6Mge@JFfKSfx#_}=oG7X?e97AozCP>G`OCAsEyC zp!n{lWqYJ(-Bx`tS^{XR22HL(Ot&XlUwfz1XG? z)0zw{dL}O6`N4}b@La8R{@$G`etT3aEp!VBN=~15{SX8OZ;7vYAXr-YyiqiPfUgkL zUcAGX*-;q;Gt`MHqjwQ%#Sr1b-Gz5QZY>OyhBILRqd9d(;UGM}{XD%@BZn^Kf_!R#;CqgJaaf zKF+6*E!|84j>O63brz%3m21nK?_#&`i9%EK*4GE7Iaa}e;OH5YAPB%i=i`bn5HVje z99=3H8*txOn@}@?F#dTger1N9IH4@`6yvnK&NDujUzzl`RhSm6PwPzM%`7ni)n~Gi zAb5aBos|$I+|%0##pk8ukrsTe!y#aCiWKmoHtluSm*aiM@{`)qccStazFE>03vXoN zY%$gbg;~zU?XsF5cU?*AN(GaSgQ{HmcOBg~BbqVD^GMyPs=Yf(YKmNSIt8H`Q@J+p zRg>C&EIQ_kxqHDh+;6@t&-0cp#mGE&PLe_WSx=j`d)Cr8%;b-TR`1|>$V-_oHp!P? zO0SyO=*y)wzyA961pzSTmjK>|hD>91<{CH7obKNid?~`rKxuc6uF=$KW1RR;EkGEQ zaj(P8lqVq4VgK6om-7a~*1zPWOkPyZhmRi^}tyP&oxIkz#6k!!ujZ{(0KG-Soi=hWVclsdmc zjlPA!79itR$J6|Ed6~4&BsaXTKMntgwv9eRg`ht^ktD4zsXCkArMj%D(~3za%A;JRj?fQUlr`I{wCg`le>4ZrYcyW#3`=PBO{s!% zYpsSJlx}apo)*Iqmqv#xuu3(|vzlBTKZoy}5@Dgq!;w#OXw=%?4iir6@5oEM-RpUF zc}@r~Mv7#?4i>8`|M;cterE3ng>u~kJ9?wm%EI@SJ5Y;ZzhU5W49nR!EJQZhx|44Z zbO}bUlb2IaUvq_mq~7p05}CO%AV7WCQBA*c>;O4d9>Dn4ZTMpVzggRs1hnpy4-aX? zi<-)IOF(VIt=vTN^)&Isf6vGU6djp~%-MlD5AgD7kINWm&$V8I1o@p?rB<3C3?OU5 zntHOJoh)WOqF860pZHOE%Cdyq=F}da(S^?xGY; z22Gin!w&ZrD$GAf7Zqdw<71K*gZN>frV;W#Sr?)kIhX%;WJmYw8c^08Z|f!>F5b_J zKC1VYuV-o^U{_0p4I^0uzHoj%Mt;8hTWHc~Tr8q1FJLqh zsSu^w%EQ-2EGHddyv>ivgUL2q{c9eiSZJnh9$V&Tzd&u4NdLkIq%TT0%$ z$bYddzHr3Q{|E2-1h)g7oZ9PHCT4WQ{c+PT4tc@(qH;_tGcknu*o77nsAW|omxNt2 z^Y@D=291R7X=l&vcX;z_GN!=!PRkeVnRF8lqBQl3U~Qh((G0Jghb=W>5nDZYVN+kL znD$iG1?of-xU%8lCOpt>BZ@Q4Yq!>1z;(R)%Wf72BX|~q)#~#ouIh@<91rb`lmr51 zd}rq5XZXYJS5h9$#|$mCg_qupyEVsJ65`IJjlm;maice`)ApAvI+KGxV{R**qc9SA zq87d@PciX-aZ0kOMM!l1WPM`hT7*8H|)Vg{cSJk`rILY$jE}OYOXY5f9&b zwmAE%v0NwKreArK_Kxm7S)7v5m6Jn#Vx?=Jub9TXQ^OH)An6sm(8+@e!<>xv>XN{- z(?muekF4a7ot3UMxMFuPkwlj!L{H_#0l?X_qytR`lD@2JTVRvFhZYUIy9Bf)#(zEh zgw~2_6LESDB&qlKyqsrb`8Lub8nwxd7g;dt1_v8kU!?f4iAEAnk1m1S8Xb0WoRs?|}?9=^H`M85-=zw={Kez)Dy2mGb7B8*EtN$Ew z^cT@|-YdYhol3a}nlxwax%VbaHY&1;T3oPj6h{#*@(WYNBjqcdEY|T~m)hUsHSptq zeh4D&>j{VXB#~3KBRtmm6T8vmGZZ7WN(Bo$$NbW0Ch`gex5MUFKi2`jB$4?Tcz#>? zA5p1oYW91FMX@juhm+;LnB+ToN^^{%j$TRArbJ)BRcVsZ_N7E;OcEbUqt>Ll%f@|? z8BvhB^p0&yX3kBSQ2R@BDRS_h4S4VxbjFUCI~AkxIp6uLB?Q>Hx3l1N-?m5;PjiOC zzYf!E(Tznb$n|n7UWrEV`YgD_XZt($brCJ)brp6m7xCK;>aB%PX7p%+z&Z-U`Jy&E(=kHhD)0^V)_^EJ_1rFnmyTuF1K^y)wE*eCM#13pgcMe5=LTWAB&ik{!>rI z$?=Hy^Y}uwKSk7{(HjzsC}}==Xig~jxS5OXjoaaHM5VNFonHV?hI!lVy_b~L&DsXu zc_qM){iys08l6L0Ewq#JV*}ypZal;)2icp(47cXMNbZ%cW$U6vI?bDYNWWDT4S~o| zRa88S!eSW)%x+OktA*-uBVlaQOV7vCjsR7$r#_6jFSo{QD6t4(VvZ=y~tN4tM5ySD;`_X={~ptF}BuDz^TdNEEbe#PKNe^=LlAj;e^!QE#b5_xYDRegNdI^?2~I zqO7r7M{m}9w{D8)@YfK$J9ilJbT2x3e_PUmC!iUA)%`x|vvStfPF|39w{KNnU`stq zcx(_?80Y^|5>(aB<1UF3!?GE=Eupnevv&Ji_iRiYw*BF-3%Jy$LlTc$i~Z~V>d#5Cr;`C08jI5ZCR9VYYSi@;9Jgv@}6IKVPcke zN|C6n*HGTa>&b;K<30V(8HtqOZoK*aXKweW?RZ6EVA<4n-HD}dR3AOT_|3H>9IN8# z^JULCnAa7_xU^Q=>9lCIeY3YhSPj8}i9YOl9k!?xw7nItE0>w@&D9nFD@xNbuz}2r zFBJD_G~#8yRP<`$0YXGrRvQb4T3!7njWbSf3)*=r zoH6H4ilUz#ZKcO%`sF(x9)bsA1o3NDVBcA1J1q%N#((AN$LNSX@&qZ0Lr1}S+cdh` zR3ZnPGrz69xQxareFOAHbi3H0n}LoJ7UQlv^}p{BbTHoA4)zSjR5mbFS$=BUe)j`*rW zu~7KE*k{M!9mpXg=0Xx6#bK|kYZ*SK8B)~Td z%3jk43@G@D4c7}d18ZQ!sp)mBv8Jx7&hG@tbcrrN0wR{~j`s!t^wVo62QlBwy3vg` zV0{B8K#w{%ixs9~U|{^1o;_gYj4UYPnP7Soe|9zaBbgo-r}75H&ejVx5CLrzUV2nH zmM!gUN2(hf1D&Vh@*`Xa+F^2+_in=-09szw7al+6#IAt%rywN!SLpIrvs!~7*km}5 zZF-nNjtw8L7H|mJ&k7Oww=KMezgqZ|&l+0kOk@}O+e+UuRV~?)NmBxD9uq2kDpi6+ zq(QbVjjQRK8L7Ed)cE}vdzeCbmz~#@3u3B{`|Sn^P@9^DZFiyE?i)_|v;(wWSEQ0Z z+O%)vOiuObOcyDoo}CNr>FAQY+g^|Ql0WPGT=y36;!iJ>V0}s*q{D1tAadqJF`iNC z5y=&9#R8TYXRn@xe}<`P+4Z?TU%>BjXY_nmaB%lfd)3|rBj9hdx-r7`hA5GK4tHca zBy_2P-55C)VucwP1ZQ50m^l4&@_5+dKeU6|+IX}Xk`sL52lXRHV`eF%>5$iV`5Q6c z;W%;cDz&~gcS}-2Ap+4@UJDGzo&OWQ_HD$F5fH|Xa!kzIXLTbK#X{Bx$tA(zT$Z`{ARVh5jq{FJ1<=g;A| zMc)|KNeaw&1ZjyYNMuSFo#xVB+fKQD9B4jGG+ZMbv08kb@scNWQlx}#*j@?q5Jm%s zs{Ocue@dp1pbXQcWy0i#s+xKH5|AZYN;g#eQo@TkU$r)O$6Gxw*bLc>N0b_iJnZ6<8t)}R`ze;^nL z^M?VRG1m#SZ@I`wQu1%biDZ1_Dfh;bdSNP^zZ(Xb8@wlX#me$Jspa5sQvD6@ zcAA}Kvf_<+Y)C@=sH*}$eY2K;t^Sbz`2wtaGfBotm-$K6T%spTt%0^eyR5aM7vD_? z=EwED<$fKjhs&-<(NSoqD7yl00D>}{A0EV;o68WH?Imqeg7^WlnRbg3h6>RdMHC$(Rau7 zmzfPuro*BAEXVSd;wem){O_kRWS7R|L(a+p46Wr198iIS8bdKJ+oC?L?%OEFBWcbafQrJ@Buf<0RtJ4|9G$Z|?MVPpJJ%c-o>uP~S z`S9@&@FQHcyceQov&q$j*PD2?K1!1ILk$9X3vgJBypdAsYs4rj6royPSaUsbT16{t zeqIU2F`v)sOg>*J{ZbP&ncM^>sG3&h4G62^H6q@sj%kzO@DNqx#^TpRFt#r7n1%=@ zqNB`cIHU7X#nUPFGUoRB$-RqQ7(ySrW&kDBtQ|@$2dFvq1;g2f9mc<@GBTDWnw$7( z<7U~Ad^RjRL8JiWQd-RRN|@X zn>PPe;w4MiU7GrJ>z2LKV@_%&DrpE_?RF&6{}WQx+;I{(NA5GGXYo9~=|<&>)vk+O z>t}8aS;-MAhJKRz#?vW-=a?I5k&4lwglrF3T11zM;||R;YW~Y<+OocyslKV$fUbk3 zK<;2Cw3BD}@ekA<`qQ#a{4*+vAR(zXaHeUQp*{0R)d9)>&7`gh2VC~#%7q7 z2V%0XL28CxG-xIbq1UZ_+|1G35EEm^>mk`DjgZ1_Ni0y*;cibaBdviee@Vz>GAp)I zx@=%EU7{NhY)sf|!8>o$Fn9IIv|!tS0d6ABZYSor6PjFyWsA#79uC{iY^|b_QmX&I zA#cTr3-!4xibfysL7Q~H)aq`F~G! zRDfH|Ag?q~SNH4Gc}R}!_=M0G+wNvsDcXng)@eELoSv<~n2N2Of)%9Jmjg7|&HcYh zZ)=d(8pjmZgKtDCy~#Bl19K}KbKY0N4_kdOcJG2IAbZJ)ID+2+YzvH(%y5b5ESx-< zQX_3Q@A@eIaJpQK{K7w+P8}QBtXFv1vUjnlKU*73R2wFNj-IeM=|%by&y;9=EqKV*HqqD;j8}o@W|~x%<$jPYb0K*R#hrr zrcu=s6CF5jPwdETkTj{46Or+b#m|%+f1_t`xir=~b+sXMhKXnNn}4P@nUazZK}-mj z!Ggz*=*nz5%ptImesv348*KNI&$NyP5WilAjymra?PS3huDl-Z89bw?+}^hk{Dn#X z0%+5ML%v|SoDW$0CBZx=!~hOTeocM?4^Jg8yBUB0!toFh`sI*gmJY8wcD7f=S@Y7! zhQf_AMoT_F>Sd>*xK83Dl=rN)RM3BS-|3pX!gl?(NqppWruVX!uDb(`c7~DIHZ-oz z@=gYlfAF93Fv93r0l2<&()l)rfcETPO?EQNJ&C+7t0LgzSb;^l&JZH}1^^ZTeCPe6 zGgA)yOnJSI4K>^U4waE0+49)M8pc?8ygp>v;sMKrGS#n@+$Q)1_rB(~M;;&6$#UMe zCx+ex<>@3;PK^;lyDp&09+DJU2P9G6OEkP5K zq}+A_*5+Zk6Dy!-Lb%eki3vhZ*_kFV7`$h69ksx>??h*R} zNQp~*-|})=`?Z7L2>6GGW6yV->EKZ?BX+8$yNkVykS!)0La7z!f>NT*JAHI)TM;m`OS?lG&Q4sd8 z>soR~aLLU|tJhuJ_-Pf@!EP{`^0o|NdCLprq*G5^mwUNqWU0=~I{!Wnp*P4XMI_wr z@5NLn)+IOvX|Q7v>gg29$S4D3cT_1mNR4NXb4WWY3fwh4 zFh7+Aq)igRmf4&`rl1=7;F@eh&mvRy3i}CQn2+ zg8q08(9<3ingOG$Q15Vi>u@iQ}QeodJhOk?USK4FO?+pf2Bnv{6>2Ic~Y8X#Uyxs_B}d|n0hf_IufQ4fY$W-$`r z(NCDoTsCV64Yf9+38d5;D7HwszXZ=H#MNE18yNv3v?slZ&`*)#B2j6yW>Y~0TnXq? z4yCgC)*T>KA*FIGz#BWRf&tz1a+p&>a1UOm-_M_?>b;xc(55!xlAP z<^A3Phw-`R5iR?`6ln=K9a+$!M$`!S&f<{v{%RR}=o*=_8KNU7em_h}^TS?!DnzDC zAdJ-}?K@(n-{6>&LR5(&9@#I=QvpyNG!*{ko1?en7`I6P;Lf${oMN>dcFAE4d~l4_ zdWXOE#%-tthKJwdaJsZiQ|>Oc{quMcLyuo$1A12^Txjb+Cp2m6W*85flHei=? z#cNMpRZV57(@{y91OTwQJ6w_S|Hz-rpRvP0$A|lVK_lnC!-A2d&y;DK-QDe5I?!8G?{3ygDpm^C{s<9zj4aUq;;z0a~az?rpLBr1L_PPt`K> zioIEuJEAt5*76W{o|=_^V8`|x?!5ju!#Xv&&Ekl78mt~fv&Fi9yejewf^Q>uzis<~ zImEhg7oG-n9}qaX!<<;oD!vUD@HK0nS>~6(*MP5xKfM9**6sb#volYN_;zAa&VYu> z$~lkIVg;~})yeVvX(kL3H$&pPLy1rKU3FpS))g+s7#1fukMBHl({_Q7Beb42Y}a~b zE1<&6QpxEhOT9i zGrP4olJJYiSeg*RB_e2OtqR;c!?91zl=2qBV&){%P(hlh%n?0lwalYS(m6a|$b|fr z%c7cImSnrP+bG0rs%t!F@^3f^?mnALO$fwHZDnm3=NY&ouQklZBs6Yd^)^;Da~Sqa zDNH_hJbgrkT?$RP(jaD{&CQ5|ATs|(=VN6cYV$CYfEHyjU!O=oOAWXH9sSJ)W&Pqn@t@ z#`a2n7;^kR9hpM85V|96em2y)n12_d!Da=&>eM&(-%|;5O#8bGw81f@d%>3d{dclP_ob z!7UJr+!(m)K0FI8V%{r0f=Z1Dd5*4dO3^s(GnPyAA^2TC8WrMW7zPKSPizy3w-7@~ z{2~MwMD) zF&AwqF+MYL4%9v%PED9XC?0ECrnS8kY9J;Rn6EN&B!RERy-mTZ1^`r;KP_3D%9elQ z4|ub`f7|XJJzGk1rL>rEiZ008<`&W$#^x}dkIiFYXgwX;4WLplJ>iBem!Fz{UIlq* zR_m3Zd5Wew<-!N?Q!F{=0+`^H`?n`mC`cqk?O~A~%mAUe0nwxSKxgpb3IHLZ!{6|O zZm|9P+t}cb5=uQNXZ%bL6~wTwZt+_!RkW>p6#ti=2G0VejIjv(sO;+0)zv+HbvS)r z=F0pkp9`++*Z)ucu?de);EGy;8_fQ^@8bpjt90hGAXw)TOz|!hxlgb=YmWT96tZ1* zS#S1qAmt6vz+Yls&UL=kD5VtU|L6B)_+=nB`E%NyylAx?YyVQaSOeEhDF0)7*8fXG z7ZTL=dAQQ+L#JA5_CZ;KKBf0B9fYbkkQe9LTi~Rw9p7_@w!7C=Cv7j0B8ZN}t0r#+ zxBP=(zqP6i>Lh8atGzYjm-~dt=w(d5=#=%;?Xz7;mSKYw-=oVaOU4TmDda!(wFxc& zEKd|1|7uNex@#OdI+s@~8(kC&I4ziy6$tfW)a!O9{}bHR7{DM#RFOu+k9 z;>EPQ4Q0-C8vyzcg95iG-VItfxUSpUp5>)ZNud}B*NpEfpgz-2j#eUiZSlJu_0;$3 z#-vK$`_^3VX_7K$cCPsNx0O5K#6*m~-8v%fwb8Ku3l7MX z)!*gmRKpc(a@m7WFAg7?U8+w7))f`155~Qu)L20F0=<53rTawZL&+1HX52xO(Tf8{ z{aB;`V9CI7oUX-FRuNdwn_*c<+iERvpJ_%0S&IO@`KdFRRz&Z=%3Ahkz0(^%vDFF5 z?w>w?`w%c|Wo-NdujufoP92@@jh+jnk*S=W!we)(cd^gR0I}^cr7+h^RH7^w?8|=?>%t_l&&ado zTI`&0!?uif6ia6BBMF+8i|umPAw0a;bR|ZVKXfrss#$L1jub_wzKMNDW3q$|O$tTV z9Rp()o8#BI0#7-aHYG>?g{jac=&;rdfe1;~<%)sjR|?Liqzr2!ZjtWUVh8t2y%&Zf zN=m4N-oyX^j}2qZ5Z|c{Hf>q{K7hZ^WHzs-A`<7=Aoi{Eaq*`a{6HcC^U!e6EaX&{ z&Y?0$4ct%Iz-+5fA+y?`FU;$)a@RQ`s=F!rJuftU zn*Ma0gVfHo(y39YrxqGT3Uj4adF8?{D1G2l{&ICw2^Z{k8Bnn6!bX-!cr5h|GpIHP<5;1YY+KgXoTzwLqhAorf-+pzV&>! z=JopgdiK#PbJT73ng1o`BabqJPIFbx$4`#bCUe;Tor!Cu+53Tdh2*WA=Hr2RNsa(F z|1dw;e+%yELyAs*W(QBI^>!tta3`ka@U|Z`y-lZ-!Lyjc0^%e!_PV(00~uQV!8xMm zI;4-A@fbZ1Cx(D=oK9!zy?ECEngiIKN(m!Z92GZQX1@Vgi^F|Nb*_FM4B!U;fFO!J zeHZ5;y9E&!@L$nAslOy2P<%0&VQ zjrnCOvMz_M#@{0V6V8dKPh$yrb}DGSrZ}<^s21S-3ITA#-|p|bKu}l!jVa;) zeDk7Sq=uz>ic@pxPuJ7#z!{7*53_W_m5?VDcw%5PC+t+nQaoP7+sZBC=GpVqjK44W z_g8=ZQ%PdOl|X9D4qh>e6X3l}EUrL!;b$ z<{4&+!pvQmtBwyjS_d?sJ%JvNIO-0$|F5;R0VF@Twm$EpX8&ht&B?rr%M2ILtN0)F zF2CBt{k?CCy1D4@&|cG|vn?n(d*(9*d$s&g2e3iuD|ZqAmeiQD;N+g93G9UmuFOMf z9ocC>{Cn}sl#fS?9nh6sE|VoMkc)xCr<2CjL>f}6)2#o;#3W4hF%FK~pJ4?eFb6vI z23c>(kGhWBe(kUdb(u6_bA29af;4m1OhVpW*FeN;cU5EvMo%A+_T97=pbp-XTu@xo!k0%ol zZ!jn3$};MPV$vi6d8Q_g3D~((sySjh?+B;CUPCd6gJ8SLzY$Hy=@M<==NbgPs2Q>o z>R~FMO)za45=NIMhMZPE{`e&7%^$pe<5h}3;vHQyA>#P(o?$z&{UL_zn^whR5t9=G zCbI=vfhU*zBKztM0(>>Q6<1e`UVWg#;D0IAvFBZ&odsLL5);BeJ>t4OU6i`Ds0NJ) z?QrasFg$`4@^}wCldBAnH4gx2dYzlM+LZ)E{^P5XiD8nntxstEAg8QetTbeR=g}Dq zUO$n@RM7fJ5RH9f2w0CRkKf_ge6d_y zahK>o{c#PE_50#5u20BR7_Bi!%vf>Ygl!>xuya~@I6E4HN}A#W%?{XVU_`_AoYZ~~D8*)%dGUGlFG z?75#NNDFjO`tZ-7w9Dwlx&l8OuGBc*6+#Pen|9$rEV&M|niL${snQ z(K~uH8XSzm3kmBBHBAWJ0?9~i5k?;(tt2Pt_AEScX-gFtyX0ntw@w=Cal`6^!KdMN z*{x&ul>dy0q|4WU5G*=3Q8DfI?x^v_`alo(+D2Z~M=QzK6`Ux@)g|kyhId~V1j*U` z8Bannmw2kI5dNMLVDAWh|5r1R&jYlBLWuRKVrO-7Znki#lDw*`vC{$uaUI^rT3k)t zd~KT#-t~pH(t{otXhyOhgM+Y@ezEP-YVLbOOC81l=!3r$P0Q8ewnbsjVwfUg%9GVQ zsoODjeHHU)XwJ|dL6SHebH6yUmCY=$<1TI$3 zu2S$)6>h~BTZj#u`NS6Lh+#UE)1Uj#O5Tkl{MGu;a_j}y%3uL_w)VP;BiIj!5u~$H zRV$t6`dzYBOjK`mHD`{wF02{WZY6K{k@P4dQad%CMhJwc8OP!1CHdzX`ERmd3Tv06 zJj_01q2n(-8>X|)g-uP9&h$KyO?Rq>Sm$ee)LRm{E%o_(v4H&R=9D^sKI6e7@5-3O`vY@_Hv{T*dQ0f6D#S)Z|7vKGQ zdwP~%kCrhe`qFhM@8C70h*(=do7XW&YneKfCR#eW}31zeaF=WJApxvXIu$M3HXg+q~f>Z3`buwesP#GYsZPHrvnR z;2DgSHe<u;sz>pwZ$99$(K1dvKDhEPs+#{6gHuH`raCjv8LUyu#ZcFx^eWdflaBA7cpEZs&)GumTqXV; z(4o|%E2E`mquh!O@Gae(d%l6YdwcLr8snjuUD8&i2kO^6)def9IXtRXqxE%5Ab!mK zz~dSy>Gk2Y+G)>5Qp04cBO}$r&%eUoqaWr2+DCpBbqcs|r4Cxc7G|8&ZO)|8(Q+Mf$x@UsG6v%h=hZ{@pLA@$#1mQBQ4ctnC?F6_Ih19U4*Q}Z zn&(Ij7SY~Ne_#;Nc$(u3stKU|&bGLJW2)FZ!Cl^yZ$+Xl*%7*%2Vu%GA%vEGBfMz> zSxP~5ZpkQz6nK!Pq-|w|bcr49xSv<|xHz}QMga;MrpIZY-}c|JQ$I0QRVks{n<}K5 z!WXq_|EPK8fz58){Z*-tPf0*#ae=A}pBMnVW~^349SKzFF4BlYz>7r;g4eUy9f8*! zXAyETL0H%MNe4I^$<7^d*2B2&pf}+stwa>`u5FwdJcJl?+gehi#RSx~4F+p_s~+5a zh85}_d;b@0ZylA@zOai2I=nZ?yfUk-(Kf@ z`)t=8_m1&h|A8@Z2=AQod*{>RHAA89K2>#b5J0X(y0GdRw#%G!REX2|k&Wikn&av4 zbMG5lYjI2(;U(ObnQw61b~UoUz})_b7MkMtXJj5^0%VIF2dUr@Ydt%I7e%nUoZFXyy>Gxg#zQtZ$pnbC{x_T1ZL{9FHbj)WuZj? za9*QGIGCaGm2+0mI~oV!jeM#YI`)hh&e{~SFJ>|qd@g14gD6bnRU{wEw_dxQ_}+h0 zWkqb?pMqW=6wq+U)Wtgv)x!3K@ID=zPXr6U6^Ow=IfM0w@$ZCD-~BYdN>FP$>XDSJ z>UUocy0N-5o~mkYzUKMhtjO31&EgoZDY&;i?ZV-1#Z^r-Gk@R4TcHPxs9LQ$vf;Hd zUtycnWf{oy%L9O*a-@-fe;l@ZRe++y2{-IzofcGP2ZtkHFwXh9!CYOBy<0yngw-Vik43NH` zPs|MTp=m?I1vYNW&`}X(Tl(~GJ57}uJX-EDB$={mvz#GXjV71W`zf=G4CovTh4E7{ z0}?geo9`tld^xG_5&3`2_6E{;W!nx6)l36?ctKk-ScgTKu^gdE@1@vLtqC|UfF_ih zKj!gQc;M=QIrDvi`i6xVI@5lKL1r>(ILTYT#H6KP?)g7Wh~A=_OyZuc zP!l8~2TD}u{a9EO@7h9{0l=o19|G6hLPM2aV+EvMe3Ecr5PgT8M(T<|Tv70~H3w{C zk3~C8>-PL7hqBHK-yp%a((NyKh_r5G0>I4`%7~q$ZvHee=v-+@@!nDjo{ceqI{PId+m!s05(Ndi=GW%zM@9e6%57Ww zFIJY$w&>Af`g4`VMQ>Xs)LAP1RmX?H((_ES4!11ypv@VX`_X+B{fT`$&Zea^?~FJi zev>>dPO5w56}woS-hn(3e*6&2)kYE}y5SCcgXb90;a=Y zKz0xK;&NAsnWrXx<(2XAlGVKxUCoZwB{4i*g=1q-=X@JuS3kSEBZm)sc|{Ujj|cP+ z=D~aH|8LA`QE%8#;d#=ZyrQhC6GX>fH??g2jA!&N2yEeqyG$UxV$= zp;|9Z;tBXoR&|`Ak~H3Q|Lp}JL1vqAZCb2(a*K+=sj+=5W}#u)kuSQY^KhuvddC>& z{ntTUrhm1j(~(|bdsOA0vBxUoN2fg2pcAQbxaY=X!*0wCc>4@d40juG;Byn2)Pr3p72@gD>NMU6HXZn{O#n35eQ(TkPfW>)_ZC7re->~=K2ucs#9>WtJSnHgI;CfCB-ySmM&f@ zod+zdeayYj1;_!bA_6%0alpv-A@wv=E@`6#q~@6_zk-4kUW?gy+xCnTGL@f!?!w1h zE=^-j9$}Fq)*|7ha!vc9Qi1-{kU&(hgqVur=AAHjjzo!^2p}oaMot-90wJ083UjDH zvYAy4bPao>#=X5Q{d;G*b`f zblwNFI%Go4F0qmNzyOcQRg>C5!&js7Sssb&ml^P>xmz)s;YhRO9}4g)W0l3LYAvP*;myzh3%m=>g&*y+-M%NpmR*IZ7rLt zqPG~daB{aOo2(N>mPU(b^TR=Rj&lm_rM*ciaY|mv>+<(Uy07s^(ZAGd+(AW z1xyf;j6z99Nl_aKzrQMbK*)bB$^|Y=dxukqI2109K=9=YYg(@(@Mc%%taNT~WM=NL z3=56HInNc)xx4RH57@$nIBelRL(a$H)P21dF>WcWdKfS;@{LT`B^%^U+$(dt+;STQ z$E%W_+JvSvfi$WQZUg2v+7}?q)4?@z<2Mdv&?;FzQE@alDjPn{?98>B|B1uto6Gsw zUn#~Yq1(UGWc}<_y2|a}u-f_o0F5|(=Sd<+{EOq#sa6NB;k!t%Z`~%xmB_~6Ya{lyPS0%q`fajSl9Cz; zdv-A>e!lQ$GAYU>bT|C*9CNLS)O$YKv+))>FSI{x(oaxaf?%kxQwLp2POK4-)%aM^8`3ofqiGPWJF&(L5UX)q3Y8D>d**_BcIgZ31oEm7>o=b*#DWv{^@YamYY=T@$Is^8N6rD!eVL>0 z#Hg+^Ke{FiC|Ov3i*VqF>JRWylJKhU1g!b$q=hQAY)m0z%FDEI)$5^cBo4TJ4GS2PBBYu7$7c0G6DL_ct8=zihH8OqBS+8l-5A(QbxwT$P9GOny zxR^hW|vlAs|a*4rz59|Gb8~kxD5EBJq0N|oO zWTeD!oyA^UN3K)+t&udX$|Aqn30Gvl-8{phvUhXN?P>>@DQ;XgyjeV+Dpa$~I?{N) z=w^7m)Stl}T@!{cX~6_|mI@l(=V0r!C!H~8Mb3h_dtLHfYtD$+gDE0xilTMWIK*{3Qi2`j9y=Hmf@GU{ zDQto?Hl!!lCr*?e7ouru-G0VVZ2!KfP(IGaXd>DpEVE`AzT}oC1i$WUI<-z(LHfJH z1I(|(CkVLu>n&6qRsuipVi)L5Xqv1}&(s;yCw%sHTEAUwVRek`KgDdJDD7+je59f$ zZbysLI;ODC3d^?_MHO~ouOj~lVPn21eLH--O5%BIlt&@7JT4buPhRwM{#902N>VKw zjp=L8b%NwLG=iP4LerF;EHJV3i@CCEK6@ScH5eRNhzrFJmQ0Upl0i-3&wg{uRP z8y{V9UrSPgdl?sT~>$*=RaLf1insiktSi{Rt)3HrVyf-@u zQG9aXJo`Z4Y>+PfE`G9(dHpl(n@Pq>clF*3IO1&6W)e0EvW@#7b9MWlm!~qSvH|Lb z;@UnUBo`truPk%0&Xwh>IJHQHOOf-$0~L1m7tA#-Y4dv)NK8_c*&FpTh#SqtPxvJ3 zrmMti^!0^Gkxm_V4+q5_*V!C?;k!e}UP%E3Bla zJ&)((c5e9Dr@dk+)^xPry$a|=b%dtxalAghjgt{MlO*7Ef4Dgf(hIZ_Nme*qtXhzW za@$(gbh{kPitzFrq~|62LRPH@q`}gnMm?QuEw0glz<1TxWJIF;wXN z#`Kp9YU;DmvJ}matIc1{K~S%A;3d_Baj;{&Z)Tb zW)=(GdJ3G@L#|oC68G$~rWv_&ZcXX-@3Wk`m~12}boTZN7ckTrRr~d`Df)t`CtS>{ z-RZ~vNIKk(U9J2CGlj%f2l|2{gr~E)RBAIFaYbAX9Dtsd#Bez5IQL&e z4W6K?A%Fx^hMX}RUYPUdNLYYxeZ7Pr7ok?6ml@#0h^#JZKRs1tFp=7~NTxQLg6I{I zVZx$aY+wMJ^=aXNe@5F1S${;^fam?#7gY7#(PuU6J&8_$%=ZsC)*$8J^Uk5e&|>jEoM$mJ?*Qsz3q$Wwy&S9Bhp&<< zMt-<4=a}tan!3zYl zdB6OAImRcymy@awIYYbHOkGKR*gv2T03-bZ-!@~eshMfZdk1jh50SUY!g=n-bcE=+ z!DlG}U+?RswiDl>clJTBcaFct(MiihBfezc zj{``Qz5S+4IBll?!rBSx;|BkLwFNTP_T?k^(sG~-0l*d?>zzwn_BfoMS}4TvX(EGa zt}fGfPV&DH@OwJfW^P+-Q88cKfX@h`H?E$mk~Sc4-Lol@;Q%yDhomH}>(qW!2l!26 z{u@4il+*BP6QC{f8^KJBgbm!A|7>PPU~P4;JEhpCn|-yX$1QTQZ3Us55!7=m+~34_ z8dG&yM|qj?aVH!ZoCtwoh#(VFD$&CTOQW5J-H1-kMs^U%WJlx5=!yQxNd~arq5#FO zCMUU_zoxdj>xl=^1dsas1@|o+gI}~CKb`C|2K^A0qnaeQ6+Kg%JRB~0FQyNBvM%UL z%xj~diy-(gN^P&x%+pyG?$LW_!z`$t-qlK3{*YxkE?SOWd2^yjBo-U`T`$?(o|6+3 z4tUuG&z(_o_eJ1F(jua=^5kIJHyazA`58rKT@xe@7xEDI2|K)A<$nVKn-XC0X!ke* z`ImcL*sUw`e*h&?tSKH`|E(N9juZ#u9PDn9GV+kZbvLO%PmY#?|v>?hN* z;9NxPQ#CYL7|Lx^HC5l>^Zl=vIyIo-YRYaKGt_itDYq#2Yec}n*}+t%K)p#)A4RAL z4tykf(qi$@<$vL^(F}V)=}Ps=_ap4Ll$n}5SbYCc#0MTCpGwE$m1-4s_xGVt{B>|)QF`q2Lrta* z6l1uLa6&@%dTiT~Qq@iL;mnp=>^C`=e+H3YV+6yJ{19}**TR9VwXzK&WTS$ANnmX5_x-kVF1`7HM!(O>4g9ecC^&jJ=XTG6W*eV zd9`9iA%1j1^;(Lv?Eg=oKOU(jy0<@B*mZhpL%>c`+!Jxxua;wMQKR2deqhz}g?t|t zPEk=-ZljgJKdkXJud_E(aRe(1i+r}n{ih1`gCS_my<9szt^KtDeCIv~`)u5X2Emqo z8o@3Er3Sn0t#`+#MDRx9l-?f(^;c9N8|ou4UoO?=PZ!lke%!pIQK8$E8|ETQ2UlN| z)$c+%`bpP5nwLmh9M7Y#eQ#?$sUPU(y!+WjYh~ReB~pF5duE`;w?obejLf^_n^FQ= zmRgW}sWl~PsA&-=ocAx!(+{^7Z8=m$)<=zzGW-W$5h5ZQ#7!b<4r0}*O-HR= zGuEK)eRF;Va2u8vy=!4%b)QF>om{)($^Uec5K`8-=Fv3$c|&PA&ZEIh;34I4@8Utf zD8xgoT}GtCx1C7*EnaMq%MZ5H7l5k}=Z{0TPald0j=3I5uXryZ9$RDgBjN zIwkb=Db&wI_FtRX2FCw{^l6Jee`mRm2G6MQ+od0`w%Ll@?fdy**h=^X98klMa;l#! zJ(A$~S0fU0#=dzpSQ*IN3T?xcP`o?dMqoP-c6}2crCPE&sEM&nM*mQ5d@)Hc>JlpZ z*?P^|0pPOQHE`lhkTm&yyC(k`v$N*@4`B8_-inylQ4iK5D;Nm{C2n@7&fIM!a;HN{ z>zZ147$j__n!<;%RWYfzG(|sF4nC<_pBK;*b69PL#+vp$ibyXW>QFG_2B^z-cf||w zPJ?(#Y^fo}NUHKf?a6JHDzqd^lj0FC8f&Ab6&rpW96;QU+Zd}((RiYVXsQ-pN*yE4 zlIy~`#~hkWFC*Sq#~3_0TLY_LI(OL5a`k>Qh22J0+Cr>WPkwb*$377w1MD{> z9RIS9BxBDS++Do<1V82kdpU~L61&!Oyu)`1w54UQ{$EZ>$qGSDJxBYRhiW^fq`>TzEU_|~D zL}n%zbbi9=$i#Ra>g`6^{|n1^D<{2u5g*OXA)4{=hcc=jLZpntRZ*FPB}s2&2cigj z=`1Q>nVg+dbaCM@{TXZe_v$t04jx>;pxe6VZ|KfTBDs40uQ_b2ccOfM4PLwc&wUd2 z>Y4VK$ceelEW0D_MY-hIG4I1pvYA(KeCY29Zl^i16B9|+Am0YX;PZ8xBDPpHtO#HN z-Nna7b;~2U!>N2#d99+DJ>}T_tkQok+8fVNgSP9=GhG zte+szyscb+vXKi8+Erv2HK_X5UvqioBjSn9WF?2 zviv{b`DsO~Y6BOwq#2Ffk&(qst`N+50m7TfbMGtFX$iJGoMO>w(xx-W&2^G#F8FPP zp*L2iL*4BNq0n2R{F*jfBNoFtuuZ3o9nT!C&;_W?39WfUjb~<&-QB#b?)@fLH~!Cw z^c0OSNEs)c19DC9-Vb78KmK2f6YGZ7-;_9@7$Iq-LwoAm;7rdA`@J%aQ^9hU5K{AlThM*dc1Y`r>>aa*}X7 z-W!gGRnG)lj~h5Pq=A0*Lenyh)0f;VK=Z&zNSbvkxnbDNDQLZm_nE|hq>n|ul+?-O zK^v9uVq#H(l9|W)^Qi>S#Xd~dvfjD&IwS$;@1OIow0SLWJyDj=s0|#Atu;^@N2Y`iQ$btqbAVrMG(HET5n64lqbaE>Kh;%HlTg*U2NUXG ztNqb7&7VL$2W|S5TC;7&&;@sF*C-pCH{iLx0MqvzjlbGAYR49%#^ZA9H2`KdQz{-u zO0cGr9q&KSj^HKK8$QF`FIe+B(HHq@C4&FI*~`=Oo;bMJxiOTP53kc?Rf>nx_}_E##U_j-R-4DsOCcGA>7rK`^oS@TOZW_hznvz+-;}HHTgPj7bGrFhkNO-x&fRz#;4*dwAFH1ZXdH^TrRE;d(<*wbUtcF~$x;$|~>zruXKj2Ov+aE!gVi8TrS zj&WLP;_jwXbKj-zel*$j@ zrcR>{v1jt2fX-6uUTPx!Lp@s#7H}M2Y>1E__MzX3+QMYom{5*-rBC~lsE>KEXGBxwEE{c#oUC}Sl1*jb)HNgq&c2w5(+E6r zSt1nsJrvR;@^a)d+vF7|3Q`oem@MTdIuBfZS!2ACr{Q$emiiylx)*^9XM2ey6t}3$ zFCFP{k$`YU{k zQ38xyxwzaLi$%zp%~Ylp!Zqjeaepb?y1MMdeDQPn^i~=&mA9UaJk*KGc`SE&-`2Tl z69%CIynw4eV-&va2M!94rhD-WRZl?F)i!++KIq0bb2I;S+x7}9a-1Z=1F-yAj1ic* zjjW(22?(-HKT#h_dDF(4P(>^>&HD@@AZ3=d1A|*noafk z`@hyuivuBmFP>foYpNdVyc1M^N#_?Ix*>_U^gEyeLw2|O#P~WbO)t*azqtof)!AW;sLt;lG=UQ%K}_%pv8*k)CL ztK5}K#tF9~{4d-tg2|4rx;AZU`NCi5Wv_5>I7H9a3m}r=B@S|@3_rE=nBn{Om2mT& z6`|jZ0p37~z;_l}NQQrq-f4?_|0Mhycvq=_6o^<5Vcj;rd;G?Rf=>6m;4s7UWiDjbpDdi_o>r)u@r9a;bXBmsEV)AR3Ir-m*TVGNxbl|6*8 zjF!5euM@fZO~p$XQ)sb+9~07rV-bBJXXF|iOuolx8(4_C*kZuC4&+>siV%fmHfs#3 z;1lsqdv&Zi(zgpBs_a+%Kk`_ireDrXMi>4#>6ULYpGQ=}HN^bHC#KR0g#yWp;nB%?80 zO36Xq?TgOSVKwHd%T>Ynd14jo6C;8sB{DW51@pG~PwCQZ0oa}sZn$rq%DZ({+??eh zin=}-#f%lnUz+~lDR3vYReXo`n!m`cGgP-RO`+>5U>5Crje6d}Yjsn!C0c2p9><+u zEp$W%nl^!7B-D;jv?%BvX^w>&{8+L;S*0%iraOImDXD*?-t?<11L{`>t`-E(WM>J?tTY zKU3X0nW}Y*jGV*$OkZ%fP{|ijo8fF{Q_UtP&G+DLM2^SFC`;ZZ*t&j?>Vq6c@6h4p z1OVlQEzg@W1)I6i?MOmTabLH4GcN2!@TWyUFUxGwL5y ztTK$JHy9z_EVN??^se!cc#7l)fqJsYdnuuJ!8+SPgxqYYX&V2)7gTqh!SDIjIrN1m zUOAQ{muDwo7?gJpSajkMDwybe^yxzF?q7AmE%=NJp(wNXLBrh~#QMatC`gEicc&i5 z1DB~!Qu;-hlO16sXUk_#CJ;^@_bVa|b(rqf@4mwEEDdtrPvtm_%;J3nw(b{FH8oZ2 zF2a@(a?boftv-7>ctGQG3goM1i!?5fe=Q$;n7OTepM#zS5C0~!ZdJ5)uY8RP6z+Rv z{|5P*!?rKReK4aewJL~!6;5$U)!p6W;sAY4(v4ld&k_kVB+4+5jK>V zkh^XO5OVXo3+g}r4f$XH&msN)O&$Cr@hWleMEuHhiYXS7LkZ3{1)yp{S4Tq% zkxOy~zg<1>%;|rw+fmVJplJtm{~h>?NfJhmorMbjS#nEmjg z8qa4fHQ`t>p`~2X4O8)p&t2ywbH30@lVuu5e{9rRa0@?A7OJ?(L3Ys&QYRzB;+U#=$b; z=`48`*Dup`e${kH3hbpJoMbu86BT^D_;#n7$M|Dd&3vnd8Pf&IhaaySUnVw(d$K@K zC&a?$&hlZ)J5J#R!@_?sOWsOVdB{-fy&-1iQ(N7x<>3M8(+)Sv$tW?~5zN=~= z^bA!0=Hq;(T~h@^7fMH>8Am3iqU^5%OAT&1Q~ya%=kS6}$eY$4@SMFV5s^?s-{>a0 z?#C6iP-}Em{9rrlbaaKPSw=auMi*MGxYQK)Nu!Q&LeP18pI+9)zxd0a&Fe9Iow~S@ zg0Na+?>r;(#K>(JXqprXIv{|5GS%CPwVOU@M`FYbTUBKk=@qpniGlso*(wgp8^4JB7X=3D296Abm41jJU^1_ABDGMvEb2I%sw=K z1&!NMJnZM!{U7sC;=-;wF4>3Fe>`aRp{L-hJLvRnR>TtZW@nV3ZR8As4($W7WLc74 zafh$9L9zamCHqLtQi4R3`oFfg>bEl;uNX1E?k7z3M7BtxzXKb$=_<(?+ec(}qUnB? zE|7&6@sKL>J^&~J?Tv_xM;&ZLN%X#2VbI!5zL0|v=|;? z1}>$l1F-Pjq81kJ58V=Pf`_-i70WXYRfaJ-Q`6xe>q9wqKWWp}T!L&Gk1A{eD;-Th;sa6vG4tl1-U@ zfR~-~7ZD$SrI-F*)hp($#=8}2gad!xq^Ep-9gI@v^()1?`i`FC_&Y?KHfq!s)tbY@ zZ^N}7_BSIP$^KV8{+km^G629{G}mClk@fy?U=xKl0Mu`-&ijWQo_8}x)($Z4BB1;o zhVYzM%bzWGRy4zgL|1$SYBfP;!$MczsK=@wl*``_Rib%&b}UjoJZCn4eJJa3(Py{2a@zl9%U9EEZBo6( zI$yctG-UC|&6)e6|MS2uVc{g>U6&%;ESsJt*J7G>t$&HA^CsCCMXGL~hwDMdjr9D> zCYSPOr%Brx<`%t*d%rC7_c;wy^+D`^wDhMsf`_JLGNv-5_-f}sKqg?f@n~2>g<@8!2Bs}n9P3~4k)ZGy}j}$BzXs+OI7RL6b%*U zV&lKaSNEMKUw-@PEGF>!{W*UC1FSTXjtOZxAM9koaRRxy zQYTAXIL#v*vNVLM-_$#&K6~g5J!i7Tk5QhhvbI<#;kQwIr=`C;l4(W+e5zolQSE6F z%llo&+(1d)36#_yxnGRS%l>933}5UpR~aKaokWKY!U|B#%Y8XI z%GS1lGX?Gdp!er}N(N67CCE>}U)Tc3fM;k2q#o*cR5$a6^$W+aWgnvs<){9z7}Uq2 zeX17QhmV^yaWy$Hed6m`@>FoGL4&VxVN{Eed#Sm^iG2UE^pB&V$M(Y*CHBgd2-3vp zh#uYo`k{<7Be4>-xmlBF_1ZRLe9~@-xkW{v=*%e;s6iJ2B}8kV17MkzTU>0ODwREQPO zz{m1L1UxN{0rhJ?m$AP>2ZR+yzc*0le9VPY3hEzkqy56yQ*LP!m)QsnpmPH2Gd}4V zdslu!AY7nWR)jx`G!XbrT0G|B*_a3GkUamG-`1ZAd-ZkYmGYBJ?Jn6Yyo&2h8}dI` z6W&WMc&NE;8ieTuL9iJ|t0yx>o7)eRxA%n3o_K2O+`UfB_7wh`zK|ml1UE$ES3Ysq zTRh&sqh&PTy;C<)(j6&KIaYrNM}IiuKzr_JOyfljSkU8m7++8ob`dfA`;`{r@>8$s2ttsEfBNfS zV5z_+!b3^UvMJ%lm#+zDvNeiZB1oJtRy>Z3?~vYy0Muf6l?I8F(K?9gN+4WBQV{i| z0`YLWnZ`Xgm;G?9dt)P#zhTEg= zr5!P|BV@^sTH3_w!&lSpNt2JCKN9G-TH!RwM*JoxWLdmHg97b(cY4QbX4C!tVb0jp zJMt|4^bUwt-d$9#WQyQFI1oB0da57FOut`7LF*R(T4V6qd$bjJUY$HZ{qSIN3%>%3pdFCGR#Mjhs1FtQS6< z_UST}+F9wNG;MHk$%ZVdbBEFBv|6=NJfJaa-Z_$9UK&rW-Q3in;A2he^xf$d%gzsD zbQMay^AzuDXz(+nw7;r;uRX8(2lsx;!!>F75nZVR`U~-9nE&!M4#!z~;zvv_FzI`hwpro>13GEPC3U+v11^s^;55|AS z{B!?*M?cLTt0n5K}9+;z|JAJeDy1Uft>*&ZFpX>7*0yqG1)Cf!Oc7B`rHTainRHM*sr4LldY0~^9XEr z<;$IiU5Pws%}UEjCZi%)xREdUCRvX$qGpTV8gF%h6|ONa(__4s?U0^NLvzMuT^#83 z`4<*8YFC|)XNLxW;&j%MIY3X>hJ~Kz@H6fosSF(o{m`C2TJv8fC1}A2_bq0#^r>F; z7h_f%ax_bydOfzwZbB2m8ixmB)UR_irit`j1PFsB|1oNRrrx1yR&}|VI~L^EALG5& z>$L=eRiAT>_#@UHvL}blIdWIFSaNrcR;^YirihNh&g0&J61|-Bi3Qt{7}fKR>$jn^ zn89PbsbJ!My_6Oba0(Rkh+Co}j_$P)o8+64u;%fb5S5Xv& z)a7=imnIsf>>TA~gjSPiRAiOD*x(0{JFQ&uWq#k3lp0j}12MsT_ew*rk1dsvl?SiE z-Qbn{{A`@ZTH=Mj&PyVrqglDI!vePBpzN=}8t5ybRHC}nsC(v{Ik~a^+gaem`faw< z2RrnEv12G)X!kHG-`hQ0td{@tUh+Hre{wD~P5+TYkc&~Qe7O{F^MGWkqrKsGNS*gs zK6S>NnuRGbtH!Nk2UY-JCfeUyhj5G6Q4B5M*H@v+`R0Vpnn?sNJdu9LIX=sjKJO6dJ7}B zSO;Vi!!;d;^*EtqHUCtU&6?O$x+fp+NCpG^1c|!Z_ulBcanOXWRkS|Wq=R# zjz3fm_8tgqQ1Y$b!`9mX0LA=3SaO)C4esbyt-G(C770l_hRb|EQcS%m{sdGZXgzKQj}2Kl1plgzp~xiJB^Ce=v@RgU(k~@&98+ zV7B=GY(`Ml&=D#95JO=ejBrtEaB*F!xF{jsG+9V^y}eJ-M!Pz=Tx^5u%qVrUc`U*G zzU5=@kq5q|#AAPtG8454c_$?)U6gEWUQW)xE@*tFiq z>C_=MF*{HF#}D0xG5^S07));WWv-YGU)8dgHI1dGH}pH;Qf~=7tW6e~M{uzXX(}>) zAel0|!(6^uHK=hZoHur``gN)R3(U~DUfsgTzTAI9v<(aV|7}RSz@fGXBK{07*&fUcF_9r#ucGu;h!8%)Te^5;X%Z~lYKkiugLZYm5NT79O5^Lcd`j8y7 zVQ}^+v@+zIxGDNW5e=?UYN~z04*kIWDtOU_Nf;4nsHDd{MoD^vwv-DABJ%T09pqy%U6-f-W@Fz)jPK zQkPp*wjfO*A4w>OJZ5FS)QVejg1Nf7A}&EU^4Bm1omr0|k>wt>_!Xx?;u1P%ljcj36ab|j4A=>Wrph%y#OvXlkhd?Bo(MT5{4}oNl|E0?Wr#NL&#kugYDTZf| zrfTPucMy#lRNsFzW!e}+*X`21a5z0Hy|Z&`!~V5H(j_+QDs-LnYM3Yct*QF>o#WXx zB_#O#JmWh>Du|claJecRE z{jrS}4`$WQ#QSvXZ3!3ngyaC`C0c>D--(H^WhLq#45lY<_s~Li_yY`YF#nN4z*LwP zy$bX&x<-`I>y8hi<#e|+jS54DcLR{qVd>BNzdSxT)A!Ju_gq1_xbWT>R1atmG+|(D5jXQFSJ-QiB1sqFB)LF>Hd}PbbB%#AiV>R4&fZ>VAZVQ@}+ZMZER`m?H<` zkTjfb7VFI{h+MlLD?0oMk3LlL^3dd5#pEU7R(?3Si>7}r*1a!Wtae-GxfDuOi+y=h z+Lok9m%%IBi;`Yi!fTbwC^GWKKuJK z^ozU)fM6IVrK-uJx;YMgoKPfJn?7F0~jkHJoY^Lqck`Zu&&RXN;ZU#NK{lyp*0U#&$&hePwh2~BYC6;PFNNQyszDtzaR-7ff|}tT2Q$ z%>uV169f&2CtD|{4E(vo1lXzDd!)2xo!nkm$(N2fViRwXn!FIylFFWkmz;V8?6N|h z>&D}}zT)cnkqeB#e-BiWLPr;n6A3O8RA<49T-+EmSk|n5VC~aqYshO5)~K);peI+J zj$$#PpDFc**&Sr?zTj+P8h9~&bc~9F^Gcr%MSyMleiikI`?_*F$z{kU^*o9Br_FXr zY(MDVv%BthYS~5C~l!|AO)Gb5lYmcj1u7nUZ5(gn> zAH3Q!jB-VRn#71)6=Z}DgD-ltpo-?lo=XINH7FkI5nrpvH#PE+oR`BzU?Ng&nVnT@ z+RKYbozMO41rV>B%mJ--QuS4&C#5rHuk^Di4CPDp8Rw*AH`urwMB-*X1eVR~SHR^<5(G;{8{k>nzDK+yjIKcUn&gGZFDr(E~ zqzm?8MQ_GN5Qi;VvW!tlxIo?*WKajW92ILK@>r;s%?c6*il9+0A($Wgg)7 zH;JT&vzaI?GvKq^WS3++^9d72lt|=N!XA_(UI=niN7ur9Ln-?sH#$h!Y&yW z3k*ZSF3lyc%9Z`ef`Mo^*x8a^TV0U;`;Yur+?y8gqkuVnqN`AGctghPcI1UpvYC@~ z<_oBztsRY@S9Rh0%s4(?9@>{k=ZCSncsQpJcE0Gu%C&r0oh&X=R-oa-bfpyRe(=-v z;Z+!#4TA(H7Rp3e7hp-xl<;-DR&m%XAy6`+FrT!7P~KnPM8^jsQ=T)V>%`Ohp^q~P zd$vUdvpv<%HA_fld#7kMA9dO-{k}ku{Y_Nqj68I73^`4r49wueo?ER^8h*xrqKfN9 z;#!-io$%;maLD=A-9jz1-I1;JdES{nuU?2C)CI1fk>piyFrrWB7;Dn!x35(avPx;F zBCH$AEmW-N`lOpFKN)X)#0^Y*eu#((XSKMr$xG2K-I?njezL3_DVAeLwd>PuOdqmh zTMjqbI5PCJgmP%aCVGvpi#bleXwy3{xXV`Q^e%#VzAj`{@hqMjEO%=a;H7gI5ny!f z1@kEg?3lm&);&31C7|Qr9hNj{&Q2i%T3uF_g)b3EyatUuU`!S8e&ACDfOR~q+Vt?D zs|=sR@tBo4=+Bk1KUCjFl%`u*c@s*pwx*xoHGdP}^mh@|HYxi1(jW$viWml_vQV!i zk+FuB6mZUMFq}2SmK3jrS}qRx_*lBl*w%Xd)Q9$Hz}#o3d;t)9iU$gg;EWKfs6zkhBS!jan*x9GMwOlfm;@o;oeyegbP$U0vF zm8RJ35Hc8lXx+j=25fjhcu`7ZvCYVB)^imteZ}%B>mv#e#Dn{^xYh{_jnun?4j-93 zXa&#K=BN$~_*_PH}#AuZ~Fhm+*?NF(XDBNg@q6-f#8||!QGvZ;O+!> z5AIHI5AN>n?hqij1$TFMpW;2;J?DJ=o>@KLnwd5Hcqj@UC`$I;m)!TIsWsjGaQmcN z!?E5x=%#!MyJVt6PKmaHgJ~p{fZMY9*ix1U8}d=p(D4oA0lX>#Pa2HM&?vddR}mAY z6@hNFGxw19rO3f77YPx2V#G(nY!;tCl84I^#l`z7@JD&rn#qfs{VXkP99w0!$rA({ zlQ;RsaC=pyeZz&R(cf&;PHmq&tWocRVfz5yNhZZScYVEX2i$HWogpFbX9f<`BF&r0 zhjTt(CvoVic#;Cjp?jr`I1M=rgVWP-()pYr%Q$_=aRFm^xHr-Js$q0w=$qyZP6L1by46N% z!o(ax#IM?}&MBbgC!gh1!x!m&?b4{?n!BU?9w@(K0Qd;dGirgIU$_ZN3i5T*is(~$ z7AkeySYtA>%Bw|wZ#>ceQ zkSk51am;9CP*?(90pqv~?=B|C#B^F_i)KWH&zOD%7$s_)CS!!MT`GyBm2$GrJ9tR3 zN2RrQZ^l5%vJAEUan5l4Au8x}wn`RVcps6?^Rt=~ElK$(6-~=T<-;zb3)8`mPboqt z57oDSuHY4}h*SeM_7U(H-3J&QwM$~(wc37XTC!?2*m=zyNz5sFR85*^F_+n_JXer+ z*OO~NVk7$eBpIAl;+lPj63B@%tol>9pJ*}w4HvbC2nrY(f%?t!&dMqk%$qDKL%qDm zP5`g;MA)})Z~w@-wJynEIJ{hEEj08P<1Jc5dL<7z?!iDF<=_2EX;KCb>Nf`i^F9+7 z;Xyj8M@krVHP=b|F%C&pEP?{g+d)koF~o~ba>-&{d#oP!shDGz=d61Q29*v*Yy7-6 z=P{B^gvox5T{kTmM;l^#OgL~Kzi+hBaq7y@0ZQ@}Wm;x_9MJ6>#ccWgc`3eEFjXp3 z&a>j&sp<|yWwCVkhmxYTAGVp@(8*D8va9aazaA%omr;8$mBPdy>l=a zs11Ou2l7yYGYE7NqNf$LEXVm5Fs!${a^<5 zIF8VWkC{fRyCDi_!bu^u?}4IeI=$R>H0X(pNs1jEN-S+Wzqh%o`;0O;jaA#&oRr(W zUn@}ly)YIBHeAi69m<4QWNpn9>~S%RHBj5!{_)zR3ESN5(aro^T5MPNk_5$pIJu56 zB3h_WW~NfT3H8;I+g0MC6a+w4hJ2(CYa@{}T4`e+(7I#x`19*xfsDr+iR--(v2~vu zUZlL$C?i`7T3RXEJF)}R!QW&MOOE?XD?#p3-@n6V3kk}aD=4dpybO;GOoN?K_u-$X zDr-haTx3ePDMWOSrb$I@efSr(AC{!+&PeDIL!l#BWSOV!v2M())c0?|HtQShU~mO~ ztBZ^C#xIP`3Vo}^_6WuZoFzAs!WE0-6dZV80(vhWz1G{gW*3^UYa#L1%D)&rob5CY z<2-IY8(BRvL3+i@|3rShMhZ2?jTm6%%jEW?W-q00OfCEFZ2+mK$n5&b#<=B0sHTKH z7PtdzFT|;;g{eCS(TElY@|4(95m#-!e9aRKvUvSV>UH%$wxD$!f5!f`?_ak3t~Ffs z1=h>2Ju?4D*hBmkbrFy7llnh0DNhLhH@39pUs5NJ_f5S&HDO9YZk!A*yPd4QL|8I)LSm7&953oSXsXpd{uPCKVenp5wXA>KW`6x zGLXny`r+c-8Vs>WUWvk7=^&YZZ@qYlB2eM{;9>oV_puks%!NQx*c=yZNdcArewdn3shJgk(x^Qz(AjJez z;`Yc&`FP(Y(S7gXva>`)%oV0@@8_YW!d3O5ExnHpzd*M+TFE0#r0J|K+*;sfMSbdz z{x?(9JQ(YOS5EVb`+36{!6Bun@I%h~ZHDjLu2%)ff0^CS!&eoyJ`G*-{?M8{em*Xa zba-+WIHD>&XR)q=`NFX5`rZ9-`Ps7An5jZ-P13Cwrzg5QA)&9Tv;MtzxETdDX z%7R_Bf8hKTZxf8+)5DnErZR?AaYtrdbDJTAx{J-A2c-Mp^5@J)r^udU8TucwS}m#{ zBf&`oT70`~Yex#h4(zW^l_GUi))L93m_ z{qc~RzRw$jhnD%!SE>2R%`vls3*wfC0`tBgBxODhmMpla3H=whEK2OX(9+Wo+@J}T zsapU_QUkZI2k-W>p`HOkJ25JhXXeF>mpuniZovI`FeoJ9ywHDu`&mt;v0agiM+MS! z=}tjA@j{qUkc@+N5I-^_pl);Pma z?0U6No?$}<-l8Q|@1~t_LM7nCn2-KAxUPOWdfKdd7*2{qs@vJ|I+tbCbWS}RTN;QI z8b?iipZisCtVV^JlA)g9V zcK67~1P}o}-``u;#m|}2vYU@^M)<*nmrE_5fcyfJ+NZ0!f&qh6Q?j(zmmBZkR9l?_ zdlxNuIW%x?ABarg08drwbvgqps2f`wx7A68j4m)u$h`&{tOELpbTml6F1ID({qEjY zQQYD*u7Nsij~l(k^_%BLzY8pls1=Z3Z*g@G8k(#^`Z-H`ew)Y4?e!VR0FGReE~>C; zT@Z9t>=*bk{V{X<&7nQ%FjlUENy903VU*3Y@R|9{%SXI2=8&FeqA=&Qw8Oy|YORFW zZYpe7KDJI8dhey=+-lrA&VCD*iOI%s9O^NEp2wMRb|NDP|X(3m?Yr4I%XgehYS72x8BdYjy zHl+BDS*QbZ4W^R7jTOW%0C*ewcvWVg`0%q=L^Aj)Yd7c8m%Z1<6jpzeo0;9^Fw@ve zEm3BcW{@{UZd99~|F0+M>Ct2RC+hUzo9v_w2@-ap5ja?ZKqsMGJwvK6IGre$m?1PJ zsT69IcSXfly+j0QXre>yjy`E`!yUJ1%V;i-?%TGn3@vc+?z-mnK6f_SQ5yK&RdAU( zD+nE4$_ZK2qR`nxCG@06KwvVxS<$2L?f@;j3pz}R>MeR3#!1Uho5_CO7Wl;n1oH(| z4lQ+zJ3XYw8`TX|Rg~;~`pcI4k&fDa zJDOSuYWj*IKU`l=y0NCz@Id58n5G4iDtXulvdOpNFWSY~^iyWrR~Y~L2qnI4386+3 zRy2tn-=hN&H~{5TL_y{m>=iilN+GKM34xJ{T=%=I?d$2T;&+R*TrPJeU0L5c2|5M( z*@jaS9yMp-^XP_xwkoTHMxOGkA>SH3S{0Vz+&21v z`qPqH=-nh=!^$Jpg(=M8CT))i#hey{(WcxC6f<+ykM^c~CW`X!8`8&3kOLjJ4wZBV zc%RO9uUhx9lAiB$c4Dr1n*Uf>U^)$2-6Az&rY-Iq()9FMxrPe{hou<8Wk_`51dOnpQsRcoE(q)%*%c&%-24;=AC-C zI9UV0pvUYvt-e)a>E=_D!ZEj<@m)_G`xJ636*iN-tS*N55cm1*ruo*NYU(71;~n?o ziRRW#0r7Iz5i!%2BXzb1g{Tfr6Q`-IxY@01BlH>Q*C;f&PF4F{@3a468I7z`Y>@@p#etu3W z*|Hx8#!X_dm8sAz>(xTfaz!zQPW?1!aFpf{Pg=#&o;NupyEbk7RS*XQHkh$!j~F~o zj9Y&wC#0-0=%0mb`0}Es-O`LOy6z^THQ8Uf-t?i7OQv7;7PKC1?7z8vbl#lXxUj3@ zkW%WC02IAd%#}{nHpP%6JhbO^WF?LwGGWQ9_!f71jAB|_iya?mi5 zt3vAi@r}@y7P*-AOAcW#UHS}IGVnA_&ZmU4uV3Sb;c{BHb^-N1wfC8A}b@y27d4}tYj>OpF%;$?=0NzZ-Te4_TraiMa)r$`25%wgLDt*ZP4|?BXDVq(&*_89rl^bU=j%>7 zC`w8m7pL;v4KwCVgsV~X+n^n@L90t7NYAL#*^;Fr+d-_h>z#L&x}@0(nYF5}2;N++m{2Y-9pfPVYqg$ zbQtof=tP*Vq)T=qxRlG&>peq1Os#RAsTA$!kpdu>7#Gv9ev}equijSd$VDI>(0#?{ zty~O)AHMyz1|%hEKVsIXpwhL(KgPYJ%;2d*SqZ#Qjq8{W4DC&Gb0uEE(}thAh5X@_ z<)c*okblq{>!?vjeEBGOGtvGGex|n8=^?g~k%4ES{*a0YT*Nmp=9iGD)4s655ZH%Av6Gcw+M>y?QZ8Cse@S#sn^5 z(y~UyyFytFeS`}ShR9tG6ri4Q>w_-e#xFmz(XE=QQdfGH28Px#Fn37mbaKksIK zxI#_Cf42vRE?S`Ynabr&c#&)YU)H#FgWLtK>*#tKR%&vCf%f~fb&)Q>^J`8ACVN(s zIF<*W;>=3^+0I`ldf$$wJv1^AC(qP8S^KNr!`bGa&;ilqCNk?3T0h;emiPYtJsm;> z3OyyQsSz?>qcU@TQNqMu#H!xM3JA!WE1}HUu*T{R|2%bKaJh$G3yVDoSn>RFe5oc= z(Z!lRxv)GJ^7@$@u6l2NZCy6F?-h`muz&O8gO$~wc6*m#!@wWTU(Y#T{c;P>39iMX z^n}u-e{0pe9asojUpWbad?8Fl#TzOhkW!|v@u;lJWoAR7n%v-l_T18@2e(Ci!U^_= z(fVq{eU|TNlODEi4;Tx!XbwL6_MeD-_PcVs9#PSBiQj-~IvAu=`Vyp5F?V|)xUcI8 z;bZu?`bg!Ur0^x}G_~OtBPo-qAi}-{3j!eN2l_F+bfypsMj9?cc;=X}B<^5q$ zh)*aj4|P7z#bU*$P%K!_--F8*Xlzmun9#C4_&+CqawCV&-5pIixH{wclDs})>Enn2 zNv4I-XqR*My{VJev~Mr#2Qk3BT|CZRG9Em&FpBky*oZtqUtPW-_x&idd+L#V=_b=3 zLncrtEXs%oT|gaTEBQLpmbi&U8sDeSVxy`|?ddZ8XL$}^yV1|i%g)!djSG)%TMc$V67lb%7l?1( z$pF$68*g#i^L}(90PQRA%IVT?_ZP53U**bL`Km3kDl)*xe75y9h?J7dxR*fO-cvme zzEI3+EIJZ2-;JCdaCL*|5f&>~9wc(Nz&S=&ylSSqPv~}+cFA@vM!)$L8p=(%ot>vt zXkMGtz&MT$y_QuRg65(1=cqSyiWTlYneBkiuxz>E*D1u^pMyC2U#jNrm)*XxV=eF| zHGcRk-ODrikaR_pe@HU8#3yH#(_k{RZ3X&ZTgd)*#H)W?1~q5A-GbuhDqpL;@U*S#+k7otbR08l??B;J>>BjUTgW$LU>WI? ztH+vi$-a!f>r!QTzHnj1-OhI0{9SGM*HR}EP6k;ZR0jZZWZ{Yd2q+aq0O0cSG?Dv# zs7n<=Z_g+NyYeFuNIbNE#Q zK{+wn>gp@dQ~dtZx$W^}h2H{FaLnf<_E1zKtC_<5gMz)S9O75M` zYOPNIbnh=LYAuD@KeqMu$+|GTKBvEd_VaU~QVIYG~6ZaeQ^zj$f(3ILS;S6Y5mOHA2$WV-_{pQZN(!d_h;YozC zZXvTrtJ1O}*F3$a)8}mKIqRphK7~$-=7QYx;`?n=_X=;Tb)kx}FLab7%zWyujXh%l zJUXo@4n-RSa;b~toE~|Lzk*W;c!Ol3+w&RlFE9U30(n~6sgB)LS3cXJv>pejR)Fbb zo@Y!Q`Lt-nWNDC{>suInjm(zv4$DRmbi1u7S~zfQy%nAH(6;Z%)B;NLbu>G^Anr)+ zK#BJRdGF3mN(!GyXyE?-I9pB8b!Zx?*7O`wDszUMtJx#>BW~OCvo0Bx0z4G79PHX$ z2u7I*7y4NwI?PX7zaKgha^<{fTCE6)ykJi8)ZP236^X!$a17@4!wcm0fIfHn++&}u zMlsEl#sy(Z5rn^^i|ISo{+^s=teAZBc`bHP3^uPZhtr-GraT(|rpAq^4Yf1&a4v;z zv~0%Io)-p`?U(A3W~sOuo-y^PRqxd*F(&7-BAK?_-7@tKa2-zl;GemAomq?@hd04c zc8=kv+bl{b?{`bKWyAGMlFE1M(vP!F3F;YWsSEf1YNZ7JErqN ze}I~~Ru45L*BjHLyO8YfWyL)R<2{{>x1ITTasdJt*<@F5lf%*>Oq7P#_l7l_+M1CrKG@-4-bHjih6#s z$WF`K<1Z@3hIaqzRnl+7<5m=fle+6+?p#u^8Lqbg*Lj}O_N4o*KY`D>K3^vB!IKe) z?pb-79+e3YujTY0RXi?k$1z$jp0>zyG@nj2OT!Vc23&h1`U+`vlH;LOAtC8Se&&v( z4IC9vmEf&^j_M2!Kr(;?B(G8+(w%&pa9PgqXf<3m){$Q;ix9b z2p?=hmFXO?dTlSGcQQe!!LN7jGUXvdR&e$NE&dZ-VZX&i0+5!QGkc%7QnwI7P zSI`iaMVs{ZLt^GYnt3U0v&tu2H?qv|asd&!>bfg@wq+d{VAYL!Kb%)Ham8c1pIG%7 zR8~-XUaLTUpv%3!YiNbzA(pGF$QHM5)m`z9{(H9cUeAXflN_!!_=m9>N@?_NY0U3n zc_cY7#+i7DlstYoX9c^awOq|!!VE9IH{a~I_-h(F&-{;Nb6)fZ&KKt5J0Y@0A z+-^0WIe$`Zq1Cc65*Z89jdW$BFSglS4PFW!o+RkBifKMBa`c3@cnlcVG)m4k5Yr$3 zjy?$KrvGeaT~^t!wpUOk@R5HpW^a4IYj}#q<N7~R7*o$m z>uI^A1%iSuRTDmrrX2j9KzzkWr2LsAvV}x3*YkQIvOOhts)e5sj5JbB#jfu8;*r7k z$Ly0(&yBe#QIb^PLE6-x?C5km4Zi`j$XX2$E=u(T@eS-=J(z=I%a~Hm8}uk=>*L>Z zCDHLl_H0OkI^E2oHF3B?!WQ9l$ZCZtj!kWoCNK=X2adrB<#ab2t1YBWEgzM>&tILV z^dMht^+5o1&-x>6(cQ+4vG>P{E!Tf?c5yVflzDF|jrgV^Oa?P|2DYy}iZ9=2Rv4cT zr*IRvTYn2eeT}xvZkz7)raf5m+4hg+W_Axve4@+N`M}~}fw3yf@zU7iQl1kSDAoQ$ zk*ke6@Y5i-edExtUfp1XK#q6rSRkXvgPx3C$e|R!d(u# z=WS}e#`Ug8(nVfa5zU|0yVbXld4`lOVrFS~w`t4Hjr*Ex>qUf+Q`;EMb1=YUCu@O= z@>DQi+N}Sz+@_mzg{FXIM5UaF&W}wO4V8Vnv^UexhDn zXLFrD13P~VHsDz7%j4Lsa2kVz12FYh{FHd;*4{Yd09CJ;9|hIDVw-jPY``C3?fy^C z2@o3(=HNF*Ol#{(4uZ()P+@_L#0Qn%S?t?#Yul$kF6V4Y!n>WhYEHLKD-{_%D-V>9 z4xBg*x~=cRq4NC`6|AwUV_jr0$M%Bqo0b`viH6T3!4N`z1NyCG*qn9!4^b4}5 zmvMO>Oi=BMP1wVnE?XlgYVQK^2fdmsbp^9oo;^nDW@@Ci$vNZnPMUwcwdsyq)<92$ zNUsQee>OZtVxzoSSB<>I`SD_A+r5oDbFbYc?zPZMb|LJ-C`vI(&0?x?`ETl%pyl{i zKkPWF+_I}{>WnEJW1pJ2$j#{Nkd(_LS~BtDwA);D-u6`>&Y#lM^VB>gG| z=2KwL6Jj2-2*iVsx-}IUjh1de%}rtR)ZX1L9ABRNoWA~1y-VIlaWOut`Jia)8DrvD;F{VxO6M?rCYwOzg9RbaDU6d- zT+84;+g`|(A~!}(pzzEmC}Tt~m!gV((*tT(BEJ z%vyPL5X7q)t=1cFeL`Rh6|LM5sidX;QMgxETi6jWJ{_|NIt2SULkS^E;Fv?9%+7wm zz}zyE$~qs-;QEsaCG$cWu>^%?z7y2UI_>(5J$SM)$PAx#gDdq{0pw7|G+6&AfM;x@ zc{8sDI_95#ci(*|QkImnrx8KXq9a)kZ7V%$3yvsACrBv{>Fn}wLIphg2qc)mwbYIw z3Oa>Vd&aeMY5q({M!U(;^PKkAn`4o5g=KVtI2Cag;ABv(7Xu+Mm~+@REB+E3ZT>y8 zL&pvE!tCtjFZ?Xe$f!po#l6elxpdZINVtLv>(hH@0W-~v%_|uFib#7sSPH%n+0CI? zM7IZmkm3AV71m|ZTi+eC>SUu;tVDx;-=RdgmLYTFk0*VHK>sj_F%&LG*)gZ`#>$Z{ zBgz?2F>3}kftH5-5Fw(~MSwhk1?lDZBi<*RtwjJzk0O3^(anS9O;mp+=Q-TNj;;Dg ziC|XteCA$7zBt=tMF2>q7`fKEk?Bte)-3RC-?zped@n#dEMr2saKg1IZx4`e6rhlM z=d4oj(_0EioAc=Vi$)>CO+9%J?TGAi_APzV=(Rr&#ad4f{s{Z-?u1)H>cP*3A`EDh zX>PS?qX$eG>>s0ajcZ3kkp_YM1@aUz+=@Y2cg6A)?W}a88V1%EvDeqFsrV}=(4|qe z)zyEJpQn8l&CjN4-dzc)=YaPiNZ2&z*YhuhM|56lkG)oyq>3{obQH~h+|2OxIr*I7 zs#Ot)Rim>$bt%^AcYSC@`W{>w=h4B{Lg&;RB@%vw zhF^GO@5tX9vV4Z1pX2L}^X`rQ-*XT&$UBVFsn1I8?N`;B%?)o(QvDd~ z5(%Rvq)|#uncPFj5dQ}ImwhQijaxGQ_H^OLjcxxqYM98;ea_Y7-nUR2$)>Y=8Yw0G zQDSOpa1U9EDM9_^`Nku0n2VZV{VtgNR@_YkyMb1-H@q#Dnj`!F- z@+Noi8f*`_L?`;zGLB-O;HwzXVW2Dp(C**hJBKd72@t-0rvEpv{eFvEJ!^wNye%XT znsx-jyGL5N5dGEbT%=z$ShN~Zj#L{Y)NcrP5n#F#bG1A&;Y{g?hNY-@WZ1Io0ShTx$>trEd(oE%qn{eSaXMXmYpcl`sL-yJYF zr9pyC1)pz5^5)g!#3;EMu8|wmc#(2cKTUQ&P$enby`KE*j%{4)(zKa2B>wKA&us9M z1wFM7L+}vuz^?wFXF6>?0ZUBLT!o+2v~h3vcm&HFhZtBHZ~nq=)uvv@T(#GQ8fu^f zPCCRityhy6KT|5q2H>fz%W8{Or>2*;Sx{9|Is}wj9~L5GBH~+gVY&*9?@u?j^DKC@ zDrNo?+!ndVzyFU@t3^*wkG!06eztB`{JbGsVWGwUlDtbP1LNUxyr64^qA$FaR5sLf zy{p=rBt*dBCyiq7Q9X3NgOj%C9@0imDvo`0@>LiGd?>Q{dW*SMLl#s0WInG7e1&C% z07zX%gj2o5&XWk91HUh1uOdlh6TbsZRj>X7v2xYRJ>>-&4$gtzA4tHQC7*)=>De;y zWL7ZX1EI*rw*kFa)oUx*{%Ei-h?LNsUwqh#OW` z_$hTN<$rmvD&9I_|92ER-_sQE_60~3w7Na3y3|DWREm*~DD@Bik~;|(3pQlgz+l4a z$@3xlA%lg09om^Lc`)J}BINeZj;Dk1ui&vfI|_m;3J0;T*5KIVx%)7Q`?#BF4g+}R zM2*@$DD$5wr=UmkAN3VQ+kYdU$aGR2C(n(_>|cWWJx@4z`&5hR*^dyW*PX%3UwCu9OpKku_!4{|U;mN@|Da{VS1{NW_>#`+n6Ni*n}Vub zD8qNNja~8YtUvLP)csqDiJt(^#6p(w=SOvwvjfKKH+Ji374s{K10I94I%_u`;tC+; zpreEN8SF;XbD_aI&D!Cwx5pA2Ei&wY;A%Zy#p?5`R``s&fzq42TEpgx_k&}M#&?1& z`v0kwri(M?FePS(vDY7x`)=NsV~w%dU&bS+xQSo4Z7NCNQ~Z$#O#ExzPQv>9n#B;` zTWjF18hVhEfrL}nO8jloLXlZ%z4M+~M1GlYbF^k#4Bi3(?RrTImKz*M*Bu`hK>#09 zo$e=R&cdHv8(WSe{>i*ihxGpMJvsNPA6{H|Tg%T5NbFWa#e9t-OY)I67s;0CSRYew z2a3d6?w^hu9%pfcaBvG(KGI14TQdv^w$dd`dvo3=!!mUy>Yrka6!X5fc{Xo20&s9G zlero1+bS_6wG+{X^bNyPA7za3UhDah=od=_A+0*cGiToW8cJz?A4R(0s3g>0Y(!)H z@~Di@(o&dpbytwZstRlNnW&ENg#}vuH^9*5hQmOx{D&y9i&(KZ#Bl?O7pFvti?0DF z+tzY18-@Bm@q6XZiid@qE=CKoq@l!IgEqDQJID|k@mjFpDl!Yhw@xS?mS!@nlUpm~ zWXq}mOj)F*__s!pYk=>1F$(s*1|S#dQTs#PYD2sR2~@(&KBQtXYHOeLb-75{y9kud z)gEqhh7ueMMa@GMRKVwMrQSYRv)Y)<#SS$&*tT68r&iJmyKawqy`lhU-5)1px=6UJ z)u@cR&*!6zIu~^F=Ea+5vPmL<#MMa0*GiY&4{_YjvgmocDo1UqmrHVSxfZSox{oUZ zA9V_#ei{?FPVvHo2u!exbPqR66$A=l>VbVFT0DRL7WDP3?*Bme%EYzAx57om8 zv!QwT4ZxS9MR9m4d;1*=31F6uuk7XOiY<>Xb37Bdl_?KoI z^^l4lV$s{FEQ({HfM2UCA4*F~6~j1mP1c9j^-Bx@{n?6z*>n5Bpv{fVS>8Qv4)c`y z#Tj_Q7=k7SN^P-0xl|_@XE1Ch_(&lbAS5G(@|#2v3>yd!T~8`P!fjUm{tD2>c&v%9 z`SoVMu=Pg+d?%H@rdx`f?kmqdm8j(=RrH>UAaj$zoZ}pt+tmv^Fw|$i#Os)wmDA5f zpb#4PcL)(=@g4w(PaL2ZwE-8jP&l+LOzZN&Sx)@`r>9e&b-!4xnEb;l6>kA^FFFpG zcBZ$*6A6dQyD#H?)dQ0L7BfFb}?tqNv%BhDJhC=*6Y?jh?- zf76OII*8RO5qYx$s@=Mutsro|6n86a)+kO(g~JRAwB1=?;f{^JA6B1*IQ5 zdl^Yh%M-%wu(4qGs<%&XH0ssWTtruvo01U2jfNgJSZ78~h=+oKGl=0)jsV^6nhAL| zm{EgKN3a`DH|^$jIaYT5^&+n_Ra2yo*H(p%&Fd%NO^#*pU}xtcK*xY~v0=sD!~as} zq|=LoTr)$)!WD*#(N*z5GG`{f0U;7J9YocxvJi&yE8aj^Rdi_dB1jFZRnY~3fs=pb z@ZdV*k(oc8i>V0CHBXM@I7fD5n$q&#ca3$rcWXhaz6F;dpRgUOeT1N4ah=PygM#pI z-xO~>;l=)2rJey)>Z6wb8PB2W34sCSCIS)?5~J<~W@D-PMLOoLO1jT)>;6-#x7;nq z3M{FfFJ>Xs_C9~-r|mia$$omR>mNYRUcswRFLcrvUJ(~oNWsr1qTPT*L-W9^9?AtD z6AnkyRYlrur%6`=n-K|!NN8K8unaJkn^u2nJ!1H|i|cNrHs@!TR2#I%+X$8pmchJx z4ZTKhh{EG^fsXjIKr7ba`f(OaM+{ydAUnyLu;Z@74vjPqF6_-@Se5Vnh&`y1emZ;A zkt%^RX$_Tfe6Lekm!nt>3gkECKPrAvHAhZwVzqG?m(Tnww(=9KT4P)360Z@>K~aW) z6nrL;B21rqZ#{VvllJz%BfPMwcsd<7H0u+%6}fv_ELRBl_itcUZCh?!4W8R)euj~NwtJ%&O7b%m}_NdJ4y3z&p z3f*rigG0yngK+;27j=(WNqs_FuQJS``Z$*Z2abG8+9=5^LZX*!jMW@Cw4P=#M5b}!NU(nn?)}}3N!2*%(8?`N*fvh7hp$40KGgFyoZ9IY<1=bzT#;EBPbF=hx(5o)`gk2T?)b_mc^;S@+yuvKl@xVf8SAblxN83i>(DSnPhIdpsEjRfqnQmh zIg}B>wrS&$(b3c*9RE?cHAe%LMqO%(H_ZO$KTcPi(#T63N7DE z>cy?XwKEzV9$m^o0IWFjcxe6}^?#UW1^8c9{zRVD(7$G~T5j9g8rf%k!MDElnNRQ1 z{HySV4*_``<^R1cL4gfFhwIi>7Ng2w`uEn3TgN;%CnXYN7kxBvFYxfG3Uk!~my8^1 z^&1cJ@-zX@pKnI5PEOs3ycJwBcI$0jgSX#o)#5=sRBnZvQhiPB!3^1ePWuHQ)6C}n z+%JtI3!1DwrTO?b(jZD7tI^?p+qd0i4{eI2=lL(!er`zrQ4Qn9?|wATs3#*hHNNwf zz`3lj>S`*1kyX{ja(ZmRGoLtRjUWzv#Oyb%5ktLPbp7||Dpkv^5dw9k#;7;oQH#F? zwYaG!l8+6r0AIW9lS$ZWIb?CUL9VuE*5&|<<)Qma4^Vl`Zv zD!wU1x6xVDRt5@?{!n?#z28O_E$`$3`AO;TiaZ>0QZY%ci@@d=Pd{uedFocd19A@y z$7*H|oakd-_OPn{^BT~1s5xjm5D&R-u~Xm)O90=>%t*k$6hyH4OB)_LTNsXpN-gyn+kDd_ARv%lK4!Sm#NMZIJ5On|FK>;% z{_x@stpm{^xIfa|FPe|34BCVNj*e-@lM5+w7#z5bA$q0CwDX&|bD%RW) zxK+=>)u{?moR=Zs7pf1=Qt(VjUbD-74s5ANFamx7`H!5z4;_QA6{VZ>j{9my23#K3 zARUI&=hnw!^Inx))}f;ZwARy5_O`I(oUU`fT9b*A{gDdyi;|Lfc>$Egxfm6p=Scbg zqYz=j_B?DyS^$|b5l_-_@I@2?aaKRo4VK zc<*EUrTe4%duxsdrAJr8N(;^YOJ5Sv@ENdJ;Awk@ar>)Wj($$50yIDfR;44M6MmTv z*N^$Wc*TE5>++OyAbh^K;NjtLV?wPz)e~1otA*Ut19_4t^?WvheN0mHV}RG`Ui0!t z^aZrPB`8xG?fO1~`L)4})CbuqoN@Q4=aZJ7LXVnAk#X59SK4C)DSwNFr4-4< zVL{L~ISLP)5n&koI!;9EYM~-oA>9$jHgM9d!37ABV3Do9+toxms(Gf@&$jkd(jsfT zR{{9QGN11*f6~8w|1yRnn9uwr=_Q(ilHQ60L8kSNt--xRV@ZpIYDW15tc&c7)*i01 z4&7ytb9?W+xiKA%`TPDmd9d|TmVh>dRAWm#0tLJ{N+`FysdF|ry0Wxdd(T_bQ#>c? z&n_1?9si8$czBxWg=ekHWQ{h45+_;7VTO};iwf|iQ35uK^G0{kMl&vJ3fivhSNtJw}7RgYxiumU;JZxzplry zBLek>`(GtF$ng&#z;Zo>9pD27Nh!2Oa8+Ea?jyqbScm}tjxIj(v`15Ez6JKh>fO76 z3IBIpEBMs@FS}M$%+3h)&{TW0PES_hCah(n-R zC{F`pd=Nu}Q7_PJg|LU$*D#Ulbx8%b<6k^Pfg+ey{|d_njs{8pJuH)nlQ{R6`Dd{W zTb-AOM$7A6hHbFC0WSex)|e*-n$qukdf9p&s<}}%^x)gE*8Cyx|LEi8V4?WLBCMpa zxI?Fp(l?Fuue}^Nrr+Jk{G%U*OO&Iy)O>}Te)OV~!e8>;a_hsdf5>;Q^Nz@0m%B7F z+_<6}F@G_guJAbG?mvk@v!0_x=zmCn2lxeKTD6wY9La zsmtfq*OD=-AO}N51+2i;dlTi-iaCFD#y9x{lK8N?5G~1x31JQL!6Rp&jkB z5w*hG>BgzTlG<~&k?L!!qZa$UYR2!qbCR4&E~XRhiaBSWN_d|8=mEd^9SiUUf?C4LCtV!QXDw&qbbm>Jty)yIe(EY@Ck*YZP9KBfP zAfc}zt|27oK>C1PH zZPDtK$D6$QIi-`14?=nOm`>axk z>QHUNRHfINK1)a$(XdtAuJo&o)^WXf*wpBJ<)$xl7kgOXfX~x2jE;AI zn?HT<`8s-RDaK+`|yFm{z^HnCo$;38wWYZ^!u%E2}j)} ztbxkI4EcGc0ODNb0{1ehA$QL~1$uJJD4Tmvrq|L`;`sUeRkG8DO2=R4R60$H1DB1~ zU@B7B&`&s`@@fFpY{-$o-CMeXY;x}zItLttK zjg8=%`%5q3Hw(G35pmJmNZB#J ziH5T2wZjzz@NnOW1$#f2Yz6XyH)tJLpyUIr_(g-Sz`{=y@YNIN+79mJOSagT*Zfw!x1apHU?YrA3y0MvU6T7IKyFXc43p&NwApogLhq=%nGo78zu7X8BW)wM|)b|BadJx^+B}Kj2uQE}^u*8ly z*&=S6?`uL*O2EwQq1gP=y*2Oh^pJLs72E)&JDSkAh-wl3;7!_lt6J4)89uPLsl$Tb6CM^a{KM=SjvjkSe+ePMzincg zqA)kaXHQlvwwUE&NcAQq=?O>PTctKo-;q$<=3{)nU`oOkak46??4p}a#(zMVb(Rzv{FX3nTXz!xmm@uJqnE@!4VJzz0E+ z)_2#|>By7sbB-Uo_g3(Q-(L+YO_;W+R@KGBsa#B+bztE<*{&cVCSKk)nR7n6zR)!Mv}u1hByiU}-Hauz`m&&}F!w-PU2w3f7*^-Mw}&ol2YWWnAb21d}(9iw^ph z@5JX~)1CD=g-@EcfCt~D*%Md1kZyKq2d$6(G@bPx*&bqySyFC*&jHM|zP)E}h_aic z;Lw4h_}B9EDjTAzT1ePHbenl^>73h->ZVwHs@CV0H-jB@QA6QDLs^83)ymxItFTQf zTRIhDOC=szHIU=8qDzkf0f5;P^)oHy?8XIk?MT*K`s-iW{y7L|eBS`i$Fa5rV>%GG~@mqnfzY`f?#X2E9@#o^(i9H3J8g0Qo+}OTtLp%pFP=hlZ073OHEQSRC=a(PdXf9zit69F77^uO9(?km~1 z)HMfqajedNTNKx7UWqjb@^GMTZ>&WebGkfO9f?HFi8R(+ycTGd%`Z+;zpp@u6|8Sf!hVDbMf=;b;YK?Zwww=1S64;0`7S&EH2zz5inN)HUdGWYQ+DLN73|X zC#<-dT#UQuT44OUyxaG8x3Lj|*c5~^W2r{{niG)!vp0p_SZ&2Q6C^BDJMDf%c^1x{ zf4e}}a%UG-iLQ+W)5H70P{hyd?&z?EL-N_BTC%&|vE)Ht{~Dhkky-w31Z_3xT^Hy3 zRfE3Zj8*>6)KL^HG4U0pxws*?uq^yzGBlRaof!T)V>Uw5G+5WL2596rqNf+QyoO!7 zv4L@fsbxys*6;-d`1pi1cB?Djfy?6evaqcvrzDLsPB4g&p$0yO zxnoAJ&oG?I>N5oy;fd;D@@n8cGKQ3Ct8?q}n7}bmIHW9^?*wX@%U6aBGXlTZL&g;y(=~8hnMG!Flg+~gZ$iGNf5vHcL|1#3 z4}XMb;s^2g?i@{UFAzt?V*ZlBRw&_xYc><9w7$CY4q=@w2@`*uopj2Hn;tcxTuwne zSOCdwFJ}B}kJOP7&#X-V#+a9v;}E6cja z1$c#!+{UUa?2Wh(w7fj_=oM4^QfB{1M-AxboQ27Pq31Dpo-fNea%-4l#zo6~sil&Y zZg#{QZGbW7XO4f@Ej zujjLjAZ_P`;HBD0}Lk)Ep-M_eIeNjd9WRr1+!#DPsw!Uaj+G#Go-Q# zcqTtPsNGpZI^CtIw66h&sEi@OGPilmdj&ln3)|dWA26mV%pYWgad862lGYy=dVA}g z(7qk;)oByqA%sAn(o*hq`BWA-9hg@ zxzWGU@Oz(MWMs2*>+(7mjaa|eJS-4|r~**Mh8pWi@_&w}A{8sd#E-?HAzV7kE$4tl zWP;{`ipZN2!7?y-kkpgrYUJx_z}lv?8b+e4AQ0lRCumO z%9N16nFa>=)1*iA#l=P>CqB|Sg0mv6ttWlsRy+OVOl3Fc`b-LmB|u~s^A2Sx;o}g* zaOJ5x!Z{k8XZc}-Kmub&TWE zRdVU%8>Pb2T~hqF*b+yNAo+R2x^rb-GNn-rMEf_-$cS}xFa=l{UfEmS1~9W}B=L6>}MB!Z^2m1>kr;|ioU`29$k() zK7J>#-MZI|8GwKAi&LmJ2v&p3UGUHaZo~E))Kk#i`tR(CbG4lQ$5F`(5<(PBEghXQ oBJ-C@m;eawA4rt{gOJ#lI){&X>1L;B_$!W!j+Y#&?XExi4+})7NB{r; From 8df3e6fd53730b2c7b614e7eeede68b0303c6391 Mon Sep 17 00:00:00 2001 From: patbeagan1 Date: Tue, 2 Nov 2021 23:11:49 -0500 Subject: [PATCH 6/8] Updating the output to say saga instead of thread --- .../main/java/com/iluwatar/choreography/events/Event.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/choreography/src/main/java/com/iluwatar/choreography/events/Event.java b/choreography/src/main/java/com/iluwatar/choreography/events/Event.java index 2c3aca48f9e5..38c3ba78df7d 100644 --- a/choreography/src/main/java/com/iluwatar/choreography/events/Event.java +++ b/choreography/src/main/java/com/iluwatar/choreography/events/Event.java @@ -16,11 +16,11 @@ public int getSagaId() { public String prettyPrintSagaId() { switch (getSagaId()) { case 0: - return (ANSI_BG_RED + "Thread 1 " + ANSI_RESET + "| "); + return (ANSI_BG_RED + "Saga 1 " + ANSI_RESET + "| "); case 1: - return (ANSI_BG_GREEN + "Thread 2 " + ANSI_RESET + "| "); + return (ANSI_BG_GREEN + "Saga 2 " + ANSI_RESET + "| "); case 2: - return (ANSI_BG_BLUE + "Thread 3 " + ANSI_RESET + "| "); + return (ANSI_BG_BLUE + "Saga 3 " + ANSI_RESET + "| "); } return "Unknown| "; } From 467c4f35c62f4d7e2292dc51d033707965d309af Mon Sep 17 00:00:00 2001 From: patbeagan1 Date: Tue, 2 Nov 2021 23:24:04 -0500 Subject: [PATCH 7/8] #1328 Fixing formatting violations --- .../java/com/iluwatar/choreography/App.java | 88 +++++---- .../iluwatar/choreography/MainService.java | 172 +++++++++--------- .../iluwatar/choreography/SagaService.java | 3 +- .../java/com/iluwatar/choreography/Util.java | 16 +- .../events/DeliveryFailureEvent.java | 38 ++-- .../events/DeliverySuccessEvent.java | 17 +- .../choreography/events/DroneEvent.java | 26 +-- .../iluwatar/choreography/events/Event.java | 40 ++-- .../choreography/events/PackageEvent.java | 16 +- .../events/RequestScheduleDeliveryEvent.java | 17 +- .../choreography/response/Failure.java | 23 +-- .../iluwatar/choreography/response/OK.java | 17 +- .../choreography/response/Response.java | 3 +- .../servicedelivery/DeliveryService.java | 67 ++++--- .../choreography/servicedrone/Drone.java | 15 +- .../servicedrone/DroneService.java | 51 +++--- .../choreography/servicepackage/Package.java | 25 +-- .../servicepackage/PackageService.java | 77 ++++---- 18 files changed, 366 insertions(+), 345 deletions(-) diff --git a/choreography/src/main/java/com/iluwatar/choreography/App.java b/choreography/src/main/java/com/iluwatar/choreography/App.java index fdae5bb64597..5b65a7fa9eed 100644 --- a/choreography/src/main/java/com/iluwatar/choreography/App.java +++ b/choreography/src/main/java/com/iluwatar/choreography/App.java @@ -25,7 +25,6 @@ import com.iluwatar.choreography.response.Response; import com.iluwatar.choreography.servicedelivery.DeliveryService; - import java.util.Random; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; @@ -35,62 +34,61 @@ * The choreography pattern is a way of managing operations in a microservice architecture. *

    *

    - * When an operation requires multiple microservices to be completed, that is called a "Saga". - * The microservices need to have a coordinator which will keep track of the information returned from each service, - * and which services still owe it information. + * When an operation requires multiple microservices to be completed, that is called a "Saga". The + * microservices need to have a coordinator which will keep track of the information returned from + * each service, and which services still owe it information. *

    * There are 2 main ways of creating sagas
      *
    1. the orchestrator pattern
    2. *
    3. the choreography pattern
    4. *
    *

    - * They differ in their approach. - * The orchestrator pattern dictates everything that should happen, procedurally. - * The analogy is that an orchestra only moves forwards when the conductor bids them to - - * they should not try to do anything unless the conductor asks for it. - * In contrast, the choreographer announces to a central queue that events have happened, - * and trusts that each microservice will be able to figure out what to do next based on that knowledge. + * They differ in their approach. The orchestrator pattern dictates everything that should happen, + * procedurally. The analogy is that an orchestra only moves forwards when the conductor bids them + * to - they should not try to do anything unless the conductor asks for it. In contrast, the + * choreographer announces to a central queue that events have happened, and trusts that each + * microservice will be able to figure out what to do next based on that knowledge. *

    */ public class App { - static String INVALID_ADDRESS = "'Middle of Nowhere'"; + static String INVALID_ADDRESS = "'Middle of Nowhere'"; - /** - * Program entry point. - *

    - * This starts the delivery process for 3 random addresses. - * - * @param args command line args - */ - public static void main(String[] args) throws ExecutionException, InterruptedException { - MainService mainService = new MainService(); - CompletableFuture.allOf( - CompletableFuture.runAsync(() -> { - Response post = mainService.requestDeliveryTo(getSampleAddress()); - System.out.println(post.getMessage()); - }), - CompletableFuture.runAsync(() -> { - Response post = mainService.requestDeliveryTo(getSampleAddress()); - System.out.println(post.getMessage()); - }), - CompletableFuture.runAsync(() -> { - Response post = mainService.requestDeliveryTo(getSampleAddress()); - System.out.println(post.getMessage()); - }) - ).get(); - } + /** + * Program entry point. + *

    + * This starts the delivery process for 3 random addresses. + * + * @param args command line args + */ + public static void main(String[] args) throws ExecutionException, InterruptedException { + MainService mainService = new MainService(); + CompletableFuture.allOf( + CompletableFuture.runAsync(() -> { + Response post = mainService.requestDeliveryTo(getSampleAddress()); + System.out.println(post.getMessage()); + }), + CompletableFuture.runAsync(() -> { + Response post = mainService.requestDeliveryTo(getSampleAddress()); + System.out.println(post.getMessage()); + }), + CompletableFuture.runAsync(() -> { + Response post = mainService.requestDeliveryTo(getSampleAddress()); + System.out.println(post.getMessage()); + }) + ).get(); + } - static String getSampleAddress() { - switch (Math.abs(new Random().nextInt()) % 3) { - case 0: - return DeliveryService.WALLABY_WAY; - case 1: - return DeliveryService.BUCKINGHAM; - case 2: - return INVALID_ADDRESS; - } - return null; + static String getSampleAddress() { + switch (Math.abs(new Random().nextInt()) % 3) { + case 0: + return DeliveryService.WALLABY_WAY; + case 1: + return DeliveryService.BUCKINGHAM; + case 2: + return INVALID_ADDRESS; } + return null; + } } diff --git a/choreography/src/main/java/com/iluwatar/choreography/MainService.java b/choreography/src/main/java/com/iluwatar/choreography/MainService.java index af55d1928277..0639649bae7d 100644 --- a/choreography/src/main/java/com/iluwatar/choreography/MainService.java +++ b/choreography/src/main/java/com/iluwatar/choreography/MainService.java @@ -1,13 +1,17 @@ package com.iluwatar.choreography; -import com.iluwatar.choreography.events.*; +import com.iluwatar.choreography.events.DeliveryFailureEvent; +import com.iluwatar.choreography.events.DeliverySuccessEvent; +import com.iluwatar.choreography.events.DroneEvent; +import com.iluwatar.choreography.events.Event; +import com.iluwatar.choreography.events.PackageEvent; +import com.iluwatar.choreography.events.RequestScheduleDeliveryEvent; import com.iluwatar.choreography.response.Failure; import com.iluwatar.choreography.response.OK; import com.iluwatar.choreography.response.Response; import com.iluwatar.choreography.servicedelivery.DeliveryService; import com.iluwatar.choreography.servicedrone.DroneService; import com.iluwatar.choreography.servicepackage.PackageService; - import java.util.List; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; @@ -15,92 +19,98 @@ public class MainService { - /* - * These are fake services which will let us see the pattern without too much overhead - * Normally these would be network requests to other live microservices. - */ + /* + * These are fake services which will let us see the pattern without too much overhead + * Normally these would be network requests to other live microservices. + */ - /** - * A service for getting a drone - */ - final DroneService droneService = new DroneService(this); + /** + * A service for getting a drone + */ + final DroneService droneService = new DroneService(this); - /** - * A service for sending drones with packages out to delivery - */ - final DeliveryService deliveryService = new DeliveryService(this); + /** + * A service for sending drones with packages out to delivery + */ + final DeliveryService deliveryService = new DeliveryService(this); - /** - * A service for creating a package - */ - final PackageService packageService = new PackageService(this); + /** + * A service for creating a package + */ + final PackageService packageService = new PackageService(this); - /** - * Generates new sagaId values, through which we can track the flow of events through multiple microservices - */ - private final AtomicInteger sagaCounter = new AtomicInteger(); + /** + * Generates new sagaId values, through which we can track the flow of events through multiple + * microservices + */ + private final AtomicInteger sagaCounter = new AtomicInteger(); - /** - * The method call that kicks off the whole flow. - * It creates a sagaId, and submits the first event - * - * @param address the address that we will be sending a package to - * @return the response that comes back after the saga completes - either OK or Failure - */ - public Response requestDeliveryTo(String address) { - return post(new RequestScheduleDeliveryEvent(sagaCounter.getAndIncrement(), address)); - } + /** + * The method call that kicks off the whole flow. It creates a sagaId, and submits the first + * event + * + * @param address the address that we will be sending a package to + * @return the response that comes back after the saga completes - either OK or Failure + */ + public Response requestDeliveryTo(String address) { + return post(new RequestScheduleDeliveryEvent(sagaCounter.getAndIncrement(), address)); + } - /** - * The message queue - *

    - * Events get fed into here, and other services are notified of the event - * The other services are able to submit events back to the queue as well - * - * @param event an event that signifies that some piece of work is complete - * @return the result of all the work that the current microservice has completed - */ - public Response post(Event event) { - if (event == null) { - return new Failure("No events to process!"); - } else { - CompletableFuture deferredResponse; - if (event instanceof RequestScheduleDeliveryEvent) { - deferredResponse = CompletableFuture.supplyAsync(() -> packageService.getPackage((RequestScheduleDeliveryEvent) event)); - } else if (event instanceof PackageEvent) { - deferredResponse = CompletableFuture.supplyAsync(() -> droneService.getDrone((PackageEvent) event)); - } else if (event instanceof DroneEvent) { - deferredResponse = CompletableFuture.supplyAsync(() -> deliveryService.completeDelivery((DroneEvent) event)); - } else if (event instanceof DeliverySuccessEvent) { - deferredResponse = CompletableFuture.supplyAsync(() -> new OK((DeliverySuccessEvent) event)); - } else if (event instanceof DeliveryFailureEvent) { - deferredResponse = CompletableFuture.supplyAsync(() -> { - DeliveryFailureEvent failureEvent = (DeliveryFailureEvent) event; - List.of(deliveryService, - droneService, - packageService).forEach(it -> it.onSagaFailure(failureEvent)); - return new Failure(failureEvent); - }); - } else { - deferredResponse = CompletableFuture.supplyAsync(() -> new Failure(event.prettyPrintSagaId() + "Could not handle that type of event!")); - } - return getResponse(deferredResponse); - } + /** + * The message queue + *

    + * Events get fed into here, and other services are notified of the event The other services are + * able to submit events back to the queue as well + * + * @param event an event that signifies that some piece of work is complete + * @return the result of all the work that the current microservice has completed + */ + public Response post(Event event) { + if (event == null) { + return new Failure("No events to process!"); + } else { + CompletableFuture deferredResponse; + if (event instanceof RequestScheduleDeliveryEvent) { + deferredResponse = CompletableFuture.supplyAsync( + () -> packageService.getPackage((RequestScheduleDeliveryEvent) event)); + } else if (event instanceof PackageEvent) { + deferredResponse = CompletableFuture.supplyAsync( + () -> droneService.getDrone((PackageEvent) event)); + } else if (event instanceof DroneEvent) { + deferredResponse = CompletableFuture.supplyAsync( + () -> deliveryService.completeDelivery((DroneEvent) event)); + } else if (event instanceof DeliverySuccessEvent) { + deferredResponse = CompletableFuture.supplyAsync( + () -> new OK((DeliverySuccessEvent) event)); + } else if (event instanceof DeliveryFailureEvent) { + deferredResponse = CompletableFuture.supplyAsync(() -> { + DeliveryFailureEvent failureEvent = (DeliveryFailureEvent) event; + List.of(deliveryService, + droneService, + packageService).forEach(it -> it.onSagaFailure(failureEvent)); + return new Failure(failureEvent); + }); + } else { + deferredResponse = CompletableFuture.supplyAsync( + () -> new Failure(event.prettyPrintSagaId() + "Could not handle that type of event!")); + } + return getResponse(deferredResponse); } + } - /** - * Helper method to await for the future to complete - * - * @param deferredResponse the response that we are waiting for - * @return the response that was promised - */ - private Response getResponse(CompletableFuture deferredResponse) { - Response response = null; - try { - response = deferredResponse.get(); - } catch (InterruptedException | ExecutionException e) { - e.printStackTrace(); - } - return response; + /** + * Helper method to await for the future to complete + * + * @param deferredResponse the response that we are waiting for + * @return the response that was promised + */ + private Response getResponse(CompletableFuture deferredResponse) { + Response response = null; + try { + response = deferredResponse.get(); + } catch (InterruptedException | ExecutionException e) { + e.printStackTrace(); } + return response; + } } diff --git a/choreography/src/main/java/com/iluwatar/choreography/SagaService.java b/choreography/src/main/java/com/iluwatar/choreography/SagaService.java index 53cc64f311e0..2f34d3681031 100644 --- a/choreography/src/main/java/com/iluwatar/choreography/SagaService.java +++ b/choreography/src/main/java/com/iluwatar/choreography/SagaService.java @@ -3,5 +3,6 @@ import com.iluwatar.choreography.events.DeliveryFailureEvent; public interface SagaService { - void onSagaFailure(DeliveryFailureEvent failureEvent); + + void onSagaFailure(DeliveryFailureEvent failureEvent); } diff --git a/choreography/src/main/java/com/iluwatar/choreography/Util.java b/choreography/src/main/java/com/iluwatar/choreography/Util.java index 7acf176c08bb..6eb60a7f3a0d 100644 --- a/choreography/src/main/java/com/iluwatar/choreography/Util.java +++ b/choreography/src/main/java/com/iluwatar/choreography/Util.java @@ -3,11 +3,13 @@ import com.iluwatar.choreography.events.Event; public class Util { - public static void performAction(Event e, String s) { - System.out.println(e.prettyPrintSagaId() + s); - } - public static final String ANSI_RESET = "\u001B[0m"; - public static final String ANSI_BG_RED = "\u001B[41m"; - public static final String ANSI_BG_GREEN = "\u001B[42m"; - public static final String ANSI_BG_BLUE = "\u001B[44m"; + + public static final String ANSI_RESET = "\u001B[0m"; + public static final String ANSI_BG_RED = "\u001B[41m"; + public static final String ANSI_BG_GREEN = "\u001B[42m"; + public static final String ANSI_BG_BLUE = "\u001B[44m"; + + public static void performAction(Event e, String s) { + System.out.println(e.prettyPrintSagaId() + s); + } } \ No newline at end of file diff --git a/choreography/src/main/java/com/iluwatar/choreography/events/DeliveryFailureEvent.java b/choreography/src/main/java/com/iluwatar/choreography/events/DeliveryFailureEvent.java index 92aa97ce11ed..32c73ee42256 100644 --- a/choreography/src/main/java/com/iluwatar/choreography/events/DeliveryFailureEvent.java +++ b/choreography/src/main/java/com/iluwatar/choreography/events/DeliveryFailureEvent.java @@ -2,30 +2,30 @@ import com.iluwatar.choreography.servicedrone.Drone; import com.iluwatar.choreography.servicepackage.Package; - import java.util.Optional; public class DeliveryFailureEvent extends Event { - private final String message; - private final Drone drone; - private final Package aPackage; - public DeliveryFailureEvent(int sagaId, Drone drone, Package aPackage, String message) { - super(sagaId); - this.message = message; - this.drone = drone; - this.aPackage = aPackage; - } + private final String message; + private final Drone drone; + private final Package aPackage; + + public DeliveryFailureEvent(int sagaId, Drone drone, Package aPackage, String message) { + super(sagaId); + this.message = message; + this.drone = drone; + this.aPackage = aPackage; + } - public String getMessage() { - return message; - } + public String getMessage() { + return message; + } - public Optional getDrone() { - return Optional.ofNullable(drone); - } + public Optional getDrone() { + return Optional.ofNullable(drone); + } - public Optional getaPackage() { - return Optional.ofNullable(aPackage); - } + public Optional getaPackage() { + return Optional.ofNullable(aPackage); + } } diff --git a/choreography/src/main/java/com/iluwatar/choreography/events/DeliverySuccessEvent.java b/choreography/src/main/java/com/iluwatar/choreography/events/DeliverySuccessEvent.java index fc0c3241bc04..953fa452bbad 100644 --- a/choreography/src/main/java/com/iluwatar/choreography/events/DeliverySuccessEvent.java +++ b/choreography/src/main/java/com/iluwatar/choreography/events/DeliverySuccessEvent.java @@ -1,15 +1,16 @@ package com.iluwatar.choreography.events; public class DeliverySuccessEvent extends Event { - private final String message; - public DeliverySuccessEvent(int sagaId, String message) { - super(sagaId); - this.message = message; - } + private final String message; - public String getMessage() { - return message; - } + public DeliverySuccessEvent(int sagaId, String message) { + super(sagaId); + this.message = message; + } + + public String getMessage() { + return message; + } } diff --git a/choreography/src/main/java/com/iluwatar/choreography/events/DroneEvent.java b/choreography/src/main/java/com/iluwatar/choreography/events/DroneEvent.java index 79038a616994..910eb8db841f 100644 --- a/choreography/src/main/java/com/iluwatar/choreography/events/DroneEvent.java +++ b/choreography/src/main/java/com/iluwatar/choreography/events/DroneEvent.java @@ -5,20 +5,20 @@ public class DroneEvent extends Event { - private final Drone drone; - private final Package aPackage; + private final Drone drone; + private final Package aPackage; - public DroneEvent(int sagaId, Drone drone, Package aPackage) { - super(sagaId); - this.drone = drone; - this.aPackage = aPackage; - } + public DroneEvent(int sagaId, Drone drone, Package aPackage) { + super(sagaId); + this.drone = drone; + this.aPackage = aPackage; + } - public Drone getDrone() { - return drone; - } + public Drone getDrone() { + return drone; + } - public Package getaPackage() { - return aPackage; - } + public Package getaPackage() { + return aPackage; + } } diff --git a/choreography/src/main/java/com/iluwatar/choreography/events/Event.java b/choreography/src/main/java/com/iluwatar/choreography/events/Event.java index 38c3ba78df7d..8e7b73655464 100644 --- a/choreography/src/main/java/com/iluwatar/choreography/events/Event.java +++ b/choreography/src/main/java/com/iluwatar/choreography/events/Event.java @@ -1,29 +1,33 @@ package com.iluwatar.choreography.events; -import static com.iluwatar.choreography.Util.*; +import static com.iluwatar.choreography.Util.ANSI_BG_BLUE; +import static com.iluwatar.choreography.Util.ANSI_BG_GREEN; +import static com.iluwatar.choreography.Util.ANSI_BG_RED; +import static com.iluwatar.choreography.Util.ANSI_RESET; public class Event { - private final int sagaId; - public Event(int sagaId) { - this.sagaId = sagaId; - } + private final int sagaId; - public int getSagaId() { - return sagaId; - } + public Event(int sagaId) { + this.sagaId = sagaId; + } + + public int getSagaId() { + return sagaId; + } - public String prettyPrintSagaId() { - switch (getSagaId()) { - case 0: - return (ANSI_BG_RED + "Saga 1 " + ANSI_RESET + "| "); - case 1: - return (ANSI_BG_GREEN + "Saga 2 " + ANSI_RESET + "| "); - case 2: - return (ANSI_BG_BLUE + "Saga 3 " + ANSI_RESET + "| "); - } - return "Unknown| "; + public String prettyPrintSagaId() { + switch (getSagaId()) { + case 0: + return (ANSI_BG_RED + "Saga 1 " + ANSI_RESET + "| "); + case 1: + return (ANSI_BG_GREEN + "Saga 2 " + ANSI_RESET + "| "); + case 2: + return (ANSI_BG_BLUE + "Saga 3 " + ANSI_RESET + "| "); } + return "Unknown| "; + } } diff --git a/choreography/src/main/java/com/iluwatar/choreography/events/PackageEvent.java b/choreography/src/main/java/com/iluwatar/choreography/events/PackageEvent.java index 2b2f6ccb9f46..353aa314aded 100644 --- a/choreography/src/main/java/com/iluwatar/choreography/events/PackageEvent.java +++ b/choreography/src/main/java/com/iluwatar/choreography/events/PackageEvent.java @@ -4,14 +4,14 @@ public class PackageEvent extends Event { - private final Package aPackage; + private final Package aPackage; - public PackageEvent(int sagaId, Package aPackage) { - super(sagaId); - this.aPackage = aPackage; - } + public PackageEvent(int sagaId, Package aPackage) { + super(sagaId); + this.aPackage = aPackage; + } - public Package getaPackage() { - return aPackage; - } + public Package getaPackage() { + return aPackage; + } } diff --git a/choreography/src/main/java/com/iluwatar/choreography/events/RequestScheduleDeliveryEvent.java b/choreography/src/main/java/com/iluwatar/choreography/events/RequestScheduleDeliveryEvent.java index e4b484465066..2de9a8359e11 100644 --- a/choreography/src/main/java/com/iluwatar/choreography/events/RequestScheduleDeliveryEvent.java +++ b/choreography/src/main/java/com/iluwatar/choreography/events/RequestScheduleDeliveryEvent.java @@ -1,14 +1,15 @@ package com.iluwatar.choreography.events; public class RequestScheduleDeliveryEvent extends Event { - private final String address; - public RequestScheduleDeliveryEvent(int sagaId, String address) { - super(sagaId); - this.address = address; - } + private final String address; - public String getAddress() { - return address; - } + public RequestScheduleDeliveryEvent(int sagaId, String address) { + super(sagaId); + this.address = address; + } + + public String getAddress() { + return address; + } } diff --git a/choreography/src/main/java/com/iluwatar/choreography/response/Failure.java b/choreography/src/main/java/com/iluwatar/choreography/response/Failure.java index c35370c1c79b..6d91d0e3e724 100644 --- a/choreography/src/main/java/com/iluwatar/choreography/response/Failure.java +++ b/choreography/src/main/java/com/iluwatar/choreography/response/Failure.java @@ -3,18 +3,19 @@ import com.iluwatar.choreography.events.DeliveryFailureEvent; public class Failure implements Response { - private final String message; - public Failure(String message) { - this.message = message; - } + private final String message; - public Failure(DeliveryFailureEvent event) { - this.message = event.prettyPrintSagaId() + event.getMessage(); - } + public Failure(String message) { + this.message = message; + } - @Override - public String getMessage() { - return message; - } + public Failure(DeliveryFailureEvent event) { + this.message = event.prettyPrintSagaId() + event.getMessage(); + } + + @Override + public String getMessage() { + return message; + } } diff --git a/choreography/src/main/java/com/iluwatar/choreography/response/OK.java b/choreography/src/main/java/com/iluwatar/choreography/response/OK.java index fc9fa2dc98a0..34c9a718b6fe 100644 --- a/choreography/src/main/java/com/iluwatar/choreography/response/OK.java +++ b/choreography/src/main/java/com/iluwatar/choreography/response/OK.java @@ -3,14 +3,15 @@ import com.iluwatar.choreography.events.DeliverySuccessEvent; public class OK implements Response { - private final String message; - public OK(DeliverySuccessEvent event) { - this.message = event.prettyPrintSagaId() + event.getMessage(); - } + private final String message; - @Override - public String getMessage() { - return message; - } + public OK(DeliverySuccessEvent event) { + this.message = event.prettyPrintSagaId() + event.getMessage(); + } + + @Override + public String getMessage() { + return message; + } } diff --git a/choreography/src/main/java/com/iluwatar/choreography/response/Response.java b/choreography/src/main/java/com/iluwatar/choreography/response/Response.java index b8e476f7ae83..d7363558feaf 100644 --- a/choreography/src/main/java/com/iluwatar/choreography/response/Response.java +++ b/choreography/src/main/java/com/iluwatar/choreography/response/Response.java @@ -1,5 +1,6 @@ package com.iluwatar.choreography.response; public interface Response { - String getMessage(); + + String getMessage(); } diff --git a/choreography/src/main/java/com/iluwatar/choreography/servicedelivery/DeliveryService.java b/choreography/src/main/java/com/iluwatar/choreography/servicedelivery/DeliveryService.java index 114ba52782f2..0cfa2dfeb2fe 100644 --- a/choreography/src/main/java/com/iluwatar/choreography/servicedelivery/DeliveryService.java +++ b/choreography/src/main/java/com/iluwatar/choreography/servicedelivery/DeliveryService.java @@ -1,49 +1,48 @@ package com.iluwatar.choreography.servicedelivery; +import static com.iluwatar.choreography.Util.performAction; + import com.iluwatar.choreography.MainService; import com.iluwatar.choreography.SagaService; import com.iluwatar.choreography.events.DeliveryFailureEvent; import com.iluwatar.choreography.events.DeliverySuccessEvent; import com.iluwatar.choreography.events.DroneEvent; import com.iluwatar.choreography.response.Response; - import java.util.List; -import static com.iluwatar.choreography.Util.performAction; - public class DeliveryService implements SagaService { - public static String WALLABY_WAY = "42 Wallaby Way, Sydney, Australia"; - - public static String BUCKINGHAM = "Buckingham Palace, London, England"; - final private List validAddresses = List.of( - WALLABY_WAY, - BUCKINGHAM - ); - - private final MainService mainService; - - public DeliveryService(MainService mainService) { - this.mainService = mainService; + public static String WALLABY_WAY = "42 Wallaby Way, Sydney, Australia"; + + public static String BUCKINGHAM = "Buckingham Palace, London, England"; + final private List validAddresses = List.of( + WALLABY_WAY, + BUCKINGHAM + ); + + private final MainService mainService; + + public DeliveryService(MainService mainService) { + this.mainService = mainService; + } + + public Response completeDelivery(DroneEvent e) { + String address = e.getaPackage().getAddress(); + if (validAddresses.contains(address)) { + performAction(e, "Drone " + e.getDrone().getId() + " is flying to " + address + "..."); + performAction(e, "Dropping off package " + e.getaPackage().getId() + "..."); + performAction(e, "Returning to base..."); + return mainService.post(new DeliverySuccessEvent(e.getSagaId(), "Delivery Completed")); + } else { + return mainService.post(new DeliveryFailureEvent(e.getSagaId(), + e.getDrone(), + e.getaPackage(), + "Could not complete delivery! Address not found.")); } + } - public Response completeDelivery(DroneEvent e) { - String address = e.getaPackage().getAddress(); - if (validAddresses.contains(address)) { - performAction(e, "Drone " + e.getDrone().getId() + " is flying to " + address + "..."); - performAction(e, "Dropping off package " + e.getaPackage().getId() + "..."); - performAction(e, "Returning to base..."); - return mainService.post(new DeliverySuccessEvent(e.getSagaId(), "Delivery Completed")); - } else { - return mainService.post(new DeliveryFailureEvent(e.getSagaId(), - e.getDrone(), - e.getaPackage(), - "Could not complete delivery! Address not found.")); - } - } - - @Override - public void onSagaFailure(DeliveryFailureEvent failureEvent) { - // no cleanup to perform, as this is the terminal step - } + @Override + public void onSagaFailure(DeliveryFailureEvent failureEvent) { + // no cleanup to perform, as this is the terminal step + } } diff --git a/choreography/src/main/java/com/iluwatar/choreography/servicedrone/Drone.java b/choreography/src/main/java/com/iluwatar/choreography/servicedrone/Drone.java index d223bd332022..db39a89e9e4e 100644 --- a/choreography/src/main/java/com/iluwatar/choreography/servicedrone/Drone.java +++ b/choreography/src/main/java/com/iluwatar/choreography/servicedrone/Drone.java @@ -1,13 +1,14 @@ package com.iluwatar.choreography.servicedrone; public class Drone { - private final long id; - public Drone(long id) { - this.id = id; - } + private final long id; - public long getId() { - return id; - } + public Drone(long id) { + this.id = id; + } + + public long getId() { + return id; + } } diff --git a/choreography/src/main/java/com/iluwatar/choreography/servicedrone/DroneService.java b/choreography/src/main/java/com/iluwatar/choreography/servicedrone/DroneService.java index 67e998b523b2..49f4d6ce117a 100644 --- a/choreography/src/main/java/com/iluwatar/choreography/servicedrone/DroneService.java +++ b/choreography/src/main/java/com/iluwatar/choreography/servicedrone/DroneService.java @@ -1,39 +1,38 @@ package com.iluwatar.choreography.servicedrone; +import static com.iluwatar.choreography.Util.performAction; + import com.iluwatar.choreography.MainService; import com.iluwatar.choreography.SagaService; import com.iluwatar.choreography.events.DeliveryFailureEvent; import com.iluwatar.choreography.events.DroneEvent; import com.iluwatar.choreography.events.PackageEvent; import com.iluwatar.choreography.response.Response; - import java.util.concurrent.atomic.AtomicInteger; -import static com.iluwatar.choreography.Util.performAction; - public class DroneService implements SagaService { - final AtomicInteger counter = new AtomicInteger(); - private final MainService mainService; - - public DroneService(MainService mainService) { - this.mainService = mainService; - } - - int getNextId() { - return counter.getAndIncrement(); - } - - public Response getDrone(PackageEvent e) { - int id = getNextId(); - performAction(e, "Contacting drone " + id + " at base..."); - performAction(e, "Drone " + id + " is preparing for pickup..."); - return mainService.post(new DroneEvent(e.getSagaId(), new Drone(id), e.getaPackage())); - } - - @Override - public void onSagaFailure(DeliveryFailureEvent failureEvent) { - failureEvent.getDrone().ifPresent(drone -> - performAction(failureEvent, "Setting drone " + drone.getId() + " to standby...")); - } + final AtomicInteger counter = new AtomicInteger(); + private final MainService mainService; + + public DroneService(MainService mainService) { + this.mainService = mainService; + } + + int getNextId() { + return counter.getAndIncrement(); + } + + public Response getDrone(PackageEvent e) { + int id = getNextId(); + performAction(e, "Contacting drone " + id + " at base..."); + performAction(e, "Drone " + id + " is preparing for pickup..."); + return mainService.post(new DroneEvent(e.getSagaId(), new Drone(id), e.getaPackage())); + } + + @Override + public void onSagaFailure(DeliveryFailureEvent failureEvent) { + failureEvent.getDrone().ifPresent(drone -> + performAction(failureEvent, "Setting drone " + drone.getId() + " to standby...")); + } } diff --git a/choreography/src/main/java/com/iluwatar/choreography/servicepackage/Package.java b/choreography/src/main/java/com/iluwatar/choreography/servicepackage/Package.java index 170e6333c0b5..659f9d2adb75 100644 --- a/choreography/src/main/java/com/iluwatar/choreography/servicepackage/Package.java +++ b/choreography/src/main/java/com/iluwatar/choreography/servicepackage/Package.java @@ -1,19 +1,20 @@ package com.iluwatar.choreography.servicepackage; public class Package { - private final long id; - private final String address; - public Package(long id, String address) { - this.id = id; - this.address = address; - } + private final long id; + private final String address; - public String getAddress() { - return address; - } + public Package(long id, String address) { + this.id = id; + this.address = address; + } - public long getId() { - return id; - } + public String getAddress() { + return address; + } + + public long getId() { + return id; + } } diff --git a/choreography/src/main/java/com/iluwatar/choreography/servicepackage/PackageService.java b/choreography/src/main/java/com/iluwatar/choreography/servicepackage/PackageService.java index 97550b2879e2..a2f1ed7f269f 100644 --- a/choreography/src/main/java/com/iluwatar/choreography/servicepackage/PackageService.java +++ b/choreography/src/main/java/com/iluwatar/choreography/servicepackage/PackageService.java @@ -1,54 +1,55 @@ package com.iluwatar.choreography.servicepackage; +import static com.iluwatar.choreography.Util.performAction; + import com.iluwatar.choreography.MainService; import com.iluwatar.choreography.SagaService; import com.iluwatar.choreography.events.DeliveryFailureEvent; import com.iluwatar.choreography.events.PackageEvent; import com.iluwatar.choreography.events.RequestScheduleDeliveryEvent; import com.iluwatar.choreography.response.Response; - import java.util.Random; import java.util.concurrent.atomic.AtomicLong; -import static com.iluwatar.choreography.Util.performAction; - public class PackageService implements SagaService { - final AtomicLong counter = new AtomicLong(); - private final MainService mainService; - Random random = new Random(); - - public PackageService(MainService mainService) { - this.mainService = mainService; - } - - long getNextId() { - return counter.getAndIncrement(); - } - boolean checkItemIsInStock() { - return Math.abs(random.nextInt() % 3) != 0; + final AtomicLong counter = new AtomicLong(); + private final MainService mainService; + Random random = new Random(); + + public PackageService(MainService mainService) { + this.mainService = mainService; + } + + long getNextId() { + return counter.getAndIncrement(); + } + + boolean checkItemIsInStock() { + return Math.abs(random.nextInt() % 3) != 0; + } + + public Response getPackage(RequestScheduleDeliveryEvent event) { + performAction(event, "Gathering items..."); + if (checkItemIsInStock()) { + long id = getNextId(); + performAction(event, "Gathering packing materials..."); + performAction(event, "Packing..."); + performAction(event, "Addressing to " + event.getAddress() + "..."); + performAction(event, "Moving package " + id + " to pickup location in warehouse. "); + return mainService.post( + new PackageEvent(event.getSagaId(), new Package(id, event.getAddress()))); + } else { + return mainService.post(new DeliveryFailureEvent(event.getSagaId(), + null, + null, + "Delivery failed! Item is not in stock!")); } + } - public Response getPackage(RequestScheduleDeliveryEvent event) { - performAction(event, "Gathering items..."); - if (checkItemIsInStock()) { - long id = getNextId(); - performAction(event, "Gathering packing materials..."); - performAction(event, "Packing..."); - performAction(event, "Addressing to " + event.getAddress() + "..."); - performAction(event, "Moving package " + id + " to pickup location in warehouse. "); - return mainService.post(new PackageEvent(event.getSagaId(), new Package(id, event.getAddress()))); - } else { - return mainService.post(new DeliveryFailureEvent(event.getSagaId(), - null, - null, - "Delivery failed! Item is not in stock!")); - } - } - - @Override - public void onSagaFailure(DeliveryFailureEvent failureEvent) { - failureEvent.getaPackage().ifPresent(aPackage -> - performAction(failureEvent, "Putting items from package " + aPackage.getId() + " back...")); - } + @Override + public void onSagaFailure(DeliveryFailureEvent failureEvent) { + failureEvent.getaPackage().ifPresent(aPackage -> + performAction(failureEvent, "Putting items from package " + aPackage.getId() + " back...")); + } } From 9d50896011911b182aced29d26b9204e35ef63eb Mon Sep 17 00:00:00 2001 From: patbeagan1 Date: Tue, 2 Nov 2021 23:43:00 -0500 Subject: [PATCH 8/8] #1328 fixing style issues --- .../java/com/iluwatar/choreography/App.java | 6 ++--- .../iluwatar/choreography/MainService.java | 23 ++++++++++--------- .../java/com/iluwatar/choreography/Util.java | 2 +- .../events/DeliveryFailureEvent.java | 18 +++++++++++---- .../choreography/events/DroneEvent.java | 21 +++++++++++++---- .../iluwatar/choreography/events/Event.java | 10 ++++++-- .../choreography/events/PackageEvent.java | 10 ++++---- .../choreography/response/Failure.java | 2 +- .../iluwatar/choreography/response/OK.java | 2 +- .../servicedelivery/DeliveryService.java | 14 +++++++---- .../servicedrone/DroneService.java | 8 ++++++- .../servicepackage/PackageService.java | 13 ++++++++--- 12 files changed, 87 insertions(+), 42 deletions(-) diff --git a/choreography/src/main/java/com/iluwatar/choreography/App.java b/choreography/src/main/java/com/iluwatar/choreography/App.java index 5b65a7fa9eed..c79b164e195e 100644 --- a/choreography/src/main/java/com/iluwatar/choreography/App.java +++ b/choreography/src/main/java/com/iluwatar/choreography/App.java @@ -56,8 +56,7 @@ public class App { /** * Program entry point. - *

    - * This starts the delivery process for 3 random addresses. + *

    This starts the delivery process for 3 random addresses.

    * * @param args command line args */ @@ -87,8 +86,9 @@ static String getSampleAddress() { return DeliveryService.BUCKINGHAM; case 2: return INVALID_ADDRESS; + default: + return null; } - return null; } } diff --git a/choreography/src/main/java/com/iluwatar/choreography/MainService.java b/choreography/src/main/java/com/iluwatar/choreography/MainService.java index 0639649bae7d..3c63cde5822f 100644 --- a/choreography/src/main/java/com/iluwatar/choreography/MainService.java +++ b/choreography/src/main/java/com/iluwatar/choreography/MainService.java @@ -25,29 +25,29 @@ public class MainService { */ /** - * A service for getting a drone + * A service for getting a drone. */ final DroneService droneService = new DroneService(this); /** - * A service for sending drones with packages out to delivery + * A service for sending drones with packages out to delivery. */ final DeliveryService deliveryService = new DeliveryService(this); /** - * A service for creating a package + * A service for creating a package. */ final PackageService packageService = new PackageService(this); /** * Generates new sagaId values, through which we can track the flow of events through multiple - * microservices + * microservices. */ private final AtomicInteger sagaCounter = new AtomicInteger(); /** * The method call that kicks off the whole flow. It creates a sagaId, and submits the first - * event + * event. * * @param address the address that we will be sending a package to * @return the response that comes back after the saga completes - either OK or Failure @@ -57,10 +57,11 @@ public Response requestDeliveryTo(String address) { } /** - * The message queue - *

    - * Events get fed into here, and other services are notified of the event The other services are - * able to submit events back to the queue as well + * The message queue. + * + *

    Events get fed into here, and other services are notified of the event The other services + * are able to submit events back to the queue as well + *

    * * @param event an event that signifies that some piece of work is complete * @return the result of all the work that the current microservice has completed @@ -92,14 +93,14 @@ public Response post(Event event) { }); } else { deferredResponse = CompletableFuture.supplyAsync( - () -> new Failure(event.prettyPrintSagaId() + "Could not handle that type of event!")); + () -> new Failure(event.getPrettySagaId() + "Could not handle that type of event!")); } return getResponse(deferredResponse); } } /** - * Helper method to await for the future to complete + * Helper method to await for the future to complete. * * @param deferredResponse the response that we are waiting for * @return the response that was promised diff --git a/choreography/src/main/java/com/iluwatar/choreography/Util.java b/choreography/src/main/java/com/iluwatar/choreography/Util.java index 6eb60a7f3a0d..f0abd64a4853 100644 --- a/choreography/src/main/java/com/iluwatar/choreography/Util.java +++ b/choreography/src/main/java/com/iluwatar/choreography/Util.java @@ -10,6 +10,6 @@ public class Util { public static final String ANSI_BG_BLUE = "\u001B[44m"; public static void performAction(Event e, String s) { - System.out.println(e.prettyPrintSagaId() + s); + System.out.println(e.getPrettySagaId() + s); } } \ No newline at end of file diff --git a/choreography/src/main/java/com/iluwatar/choreography/events/DeliveryFailureEvent.java b/choreography/src/main/java/com/iluwatar/choreography/events/DeliveryFailureEvent.java index 32c73ee42256..be6651343b81 100644 --- a/choreography/src/main/java/com/iluwatar/choreography/events/DeliveryFailureEvent.java +++ b/choreography/src/main/java/com/iluwatar/choreography/events/DeliveryFailureEvent.java @@ -8,13 +8,21 @@ public class DeliveryFailureEvent extends Event { private final String message; private final Drone drone; - private final Package aPackage; + private final Package localPackage; - public DeliveryFailureEvent(int sagaId, Drone drone, Package aPackage, String message) { + /** + * An event for announcing that the entire saga has failed. + * + * @param sagaId the id of the current saga + * @param drone the id of the drone + * @param localPackage the id of the package + * @param message the failure message + */ + public DeliveryFailureEvent(int sagaId, Drone drone, Package localPackage, String message) { super(sagaId); this.message = message; this.drone = drone; - this.aPackage = aPackage; + this.localPackage = localPackage; } public String getMessage() { @@ -25,7 +33,7 @@ public Optional getDrone() { return Optional.ofNullable(drone); } - public Optional getaPackage() { - return Optional.ofNullable(aPackage); + public Optional getLocalPackage() { + return Optional.ofNullable(localPackage); } } diff --git a/choreography/src/main/java/com/iluwatar/choreography/events/DroneEvent.java b/choreography/src/main/java/com/iluwatar/choreography/events/DroneEvent.java index 910eb8db841f..e9533a21a320 100644 --- a/choreography/src/main/java/com/iluwatar/choreography/events/DroneEvent.java +++ b/choreography/src/main/java/com/iluwatar/choreography/events/DroneEvent.java @@ -6,19 +6,30 @@ public class DroneEvent extends Event { private final Drone drone; - private final Package aPackage; + private final Package localPackage; - public DroneEvent(int sagaId, Drone drone, Package aPackage) { + /** + * An event that announces that a drone has been successfully provisioned. + * + *

    + * It passes information on to the next event in the saga. + *

    + * + * @param sagaId the id of the current saga + * @param drone the id of the provisioned drone + * @param localPackage the id of the package the drone is delivering + */ + public DroneEvent(int sagaId, Drone drone, Package localPackage) { super(sagaId); this.drone = drone; - this.aPackage = aPackage; + this.localPackage = localPackage; } public Drone getDrone() { return drone; } - public Package getaPackage() { - return aPackage; + public Package getLocalPackage() { + return localPackage; } } diff --git a/choreography/src/main/java/com/iluwatar/choreography/events/Event.java b/choreography/src/main/java/com/iluwatar/choreography/events/Event.java index 8e7b73655464..b7c4233232fd 100644 --- a/choreography/src/main/java/com/iluwatar/choreography/events/Event.java +++ b/choreography/src/main/java/com/iluwatar/choreography/events/Event.java @@ -17,7 +17,12 @@ public int getSagaId() { return sagaId; } - public String prettyPrintSagaId() { + /** + * Returns a string that represents the current saga id. + * + * @return colored string that represents the saga id. + */ + public String getPrettySagaId() { switch (getSagaId()) { case 0: return (ANSI_BG_RED + "Saga 1 " + ANSI_RESET + "| "); @@ -25,8 +30,9 @@ public String prettyPrintSagaId() { return (ANSI_BG_GREEN + "Saga 2 " + ANSI_RESET + "| "); case 2: return (ANSI_BG_BLUE + "Saga 3 " + ANSI_RESET + "| "); + default: + return "Unknown| "; } - return "Unknown| "; } } diff --git a/choreography/src/main/java/com/iluwatar/choreography/events/PackageEvent.java b/choreography/src/main/java/com/iluwatar/choreography/events/PackageEvent.java index 353aa314aded..3aa226a932c5 100644 --- a/choreography/src/main/java/com/iluwatar/choreography/events/PackageEvent.java +++ b/choreography/src/main/java/com/iluwatar/choreography/events/PackageEvent.java @@ -4,14 +4,14 @@ public class PackageEvent extends Event { - private final Package aPackage; + private final Package localPackage; - public PackageEvent(int sagaId, Package aPackage) { + public PackageEvent(int sagaId, Package localPackage) { super(sagaId); - this.aPackage = aPackage; + this.localPackage = localPackage; } - public Package getaPackage() { - return aPackage; + public Package getLocalPackage() { + return localPackage; } } diff --git a/choreography/src/main/java/com/iluwatar/choreography/response/Failure.java b/choreography/src/main/java/com/iluwatar/choreography/response/Failure.java index 6d91d0e3e724..d643fedd9463 100644 --- a/choreography/src/main/java/com/iluwatar/choreography/response/Failure.java +++ b/choreography/src/main/java/com/iluwatar/choreography/response/Failure.java @@ -11,7 +11,7 @@ public Failure(String message) { } public Failure(DeliveryFailureEvent event) { - this.message = event.prettyPrintSagaId() + event.getMessage(); + this.message = event.getPrettySagaId() + event.getMessage(); } @Override diff --git a/choreography/src/main/java/com/iluwatar/choreography/response/OK.java b/choreography/src/main/java/com/iluwatar/choreography/response/OK.java index 34c9a718b6fe..a790a9d2746a 100644 --- a/choreography/src/main/java/com/iluwatar/choreography/response/OK.java +++ b/choreography/src/main/java/com/iluwatar/choreography/response/OK.java @@ -7,7 +7,7 @@ public class OK implements Response { private final String message; public OK(DeliverySuccessEvent event) { - this.message = event.prettyPrintSagaId() + event.getMessage(); + this.message = event.getPrettySagaId() + event.getMessage(); } @Override diff --git a/choreography/src/main/java/com/iluwatar/choreography/servicedelivery/DeliveryService.java b/choreography/src/main/java/com/iluwatar/choreography/servicedelivery/DeliveryService.java index 0cfa2dfeb2fe..224ef4f943c0 100644 --- a/choreography/src/main/java/com/iluwatar/choreography/servicedelivery/DeliveryService.java +++ b/choreography/src/main/java/com/iluwatar/choreography/servicedelivery/DeliveryService.java @@ -15,7 +15,7 @@ public class DeliveryService implements SagaService { public static String WALLABY_WAY = "42 Wallaby Way, Sydney, Australia"; public static String BUCKINGHAM = "Buckingham Palace, London, England"; - final private List validAddresses = List.of( + private final List validAddresses = List.of( WALLABY_WAY, BUCKINGHAM ); @@ -26,17 +26,23 @@ public DeliveryService(MainService mainService) { this.mainService = mainService; } + /** + * Performs the final transaction in the saga. + * + * @param e the event that was received. + * @return a response that either signifies the whole saga was a success, or a failure. + */ public Response completeDelivery(DroneEvent e) { - String address = e.getaPackage().getAddress(); + String address = e.getLocalPackage().getAddress(); if (validAddresses.contains(address)) { performAction(e, "Drone " + e.getDrone().getId() + " is flying to " + address + "..."); - performAction(e, "Dropping off package " + e.getaPackage().getId() + "..."); + performAction(e, "Dropping off package " + e.getLocalPackage().getId() + "..."); performAction(e, "Returning to base..."); return mainService.post(new DeliverySuccessEvent(e.getSagaId(), "Delivery Completed")); } else { return mainService.post(new DeliveryFailureEvent(e.getSagaId(), e.getDrone(), - e.getaPackage(), + e.getLocalPackage(), "Could not complete delivery! Address not found.")); } } diff --git a/choreography/src/main/java/com/iluwatar/choreography/servicedrone/DroneService.java b/choreography/src/main/java/com/iluwatar/choreography/servicedrone/DroneService.java index 49f4d6ce117a..8c73f73cb65b 100644 --- a/choreography/src/main/java/com/iluwatar/choreography/servicedrone/DroneService.java +++ b/choreography/src/main/java/com/iluwatar/choreography/servicedrone/DroneService.java @@ -23,11 +23,17 @@ int getNextId() { return counter.getAndIncrement(); } + /** + * Provisions a drone. + * + * @param e the event that was received. + * @return a response with either the drone id or a failure. + */ public Response getDrone(PackageEvent e) { int id = getNextId(); performAction(e, "Contacting drone " + id + " at base..."); performAction(e, "Drone " + id + " is preparing for pickup..."); - return mainService.post(new DroneEvent(e.getSagaId(), new Drone(id), e.getaPackage())); + return mainService.post(new DroneEvent(e.getSagaId(), new Drone(id), e.getLocalPackage())); } @Override diff --git a/choreography/src/main/java/com/iluwatar/choreography/servicepackage/PackageService.java b/choreography/src/main/java/com/iluwatar/choreography/servicepackage/PackageService.java index a2f1ed7f269f..155a8c8aa25f 100644 --- a/choreography/src/main/java/com/iluwatar/choreography/servicepackage/PackageService.java +++ b/choreography/src/main/java/com/iluwatar/choreography/servicepackage/PackageService.java @@ -29,10 +29,16 @@ boolean checkItemIsInStock() { return Math.abs(random.nextInt() % 3) != 0; } + /** + * Creates a package in response to a RequestScheduleDeliveryEvent event. + * + * @param event the event that was received + * @return a response with either the id of the generated package, or a failure + */ public Response getPackage(RequestScheduleDeliveryEvent event) { performAction(event, "Gathering items..."); if (checkItemIsInStock()) { - long id = getNextId(); + final long id = getNextId(); performAction(event, "Gathering packing materials..."); performAction(event, "Packing..."); performAction(event, "Addressing to " + event.getAddress() + "..."); @@ -49,7 +55,8 @@ public Response getPackage(RequestScheduleDeliveryEvent event) { @Override public void onSagaFailure(DeliveryFailureEvent failureEvent) { - failureEvent.getaPackage().ifPresent(aPackage -> - performAction(failureEvent, "Putting items from package " + aPackage.getId() + " back...")); + failureEvent.getLocalPackage().ifPresent(localPackage -> + performAction(failureEvent, + "Putting items from package " + localPackage.getId() + " back...")); } }