From f3ff1d77e83fcfcafb2edb9e93d48bb78a5e5ff5 Mon Sep 17 00:00:00 2001 From: Paul Sterl Date: Fri, 10 Jan 2025 09:37:12 +0100 Subject: [PATCH 1/9] events now in transactions --- .../spring/persistent_tasks/api/Trigger.java | 2 -- .../{shared/model => api}/TriggerStatus.java | 2 +- .../history/HistoryService.java | 2 +- .../component/TriggerHistoryComponent.java | 27 +++++++++---------- .../scheduler/SchedulerService.java | 9 +++++-- .../shared/model/HasTriggerData.java | 8 ++++++ .../shared/model/TriggerData.java | 5 ++++ .../repository/TriggerDataRepository.java | 2 +- .../trigger/TriggerService.java | 2 +- .../component/EditTriggerComponent.java | 13 +++++---- .../component/LockNextTriggerComponent.java | 2 +- .../component/ReadTriggerComponent.java | 2 +- .../component/RunTriggerComponent.java | 3 ++- .../trigger/event/TriggerAddedEvent.java | 12 ++++++--- .../trigger/event/TriggerCanceledEvent.java | 10 +++++-- .../trigger/event/TriggerFailedEvent.java | 11 +++++--- .../trigger/event/TriggerLifeCycleEvent.java | 23 +++++++--------- .../trigger/event/TriggerRunningEvent.java | 10 +++++-- .../trigger/event/TriggerSuccessEvent.java | 11 +++++--- .../trigger/model/TriggerEntity.java | 7 ++++- .../trigger/repository/TriggerRepository.java | 2 +- .../persistent_tasks/AbstractSpringTest.java | 2 +- .../TaskSchedulerServiceTest.java | 2 +- .../history/HistoryServiceTest.java | 2 +- .../TriggerHistoryDetailRepositoryTest.java | 2 +- .../scheduler/SchedulerServiceTest.java | 2 +- .../SchedulerServiceTransactionTest.java | 2 +- .../scheduler/TaskFailoverTest.java | 2 +- .../trigger/TriggerServiceTest.java | 2 +- .../trigger/api/TriggerResourceTest.java | 2 +- 30 files changed, 114 insertions(+), 69 deletions(-) rename core/src/main/java/org/sterl/spring/persistent_tasks/{shared/model => api}/TriggerStatus.java (85%) diff --git a/core/src/main/java/org/sterl/spring/persistent_tasks/api/Trigger.java b/core/src/main/java/org/sterl/spring/persistent_tasks/api/Trigger.java index 689ea5be7..2e1120b4d 100644 --- a/core/src/main/java/org/sterl/spring/persistent_tasks/api/Trigger.java +++ b/core/src/main/java/org/sterl/spring/persistent_tasks/api/Trigger.java @@ -2,8 +2,6 @@ import java.time.OffsetDateTime; -import org.sterl.spring.persistent_tasks.shared.model.TriggerStatus; - import lombok.Data; @Data diff --git a/core/src/main/java/org/sterl/spring/persistent_tasks/shared/model/TriggerStatus.java b/core/src/main/java/org/sterl/spring/persistent_tasks/api/TriggerStatus.java similarity index 85% rename from core/src/main/java/org/sterl/spring/persistent_tasks/shared/model/TriggerStatus.java rename to core/src/main/java/org/sterl/spring/persistent_tasks/api/TriggerStatus.java index 5c4bcd0ed..5f383df03 100644 --- a/core/src/main/java/org/sterl/spring/persistent_tasks/shared/model/TriggerStatus.java +++ b/core/src/main/java/org/sterl/spring/persistent_tasks/api/TriggerStatus.java @@ -1,4 +1,4 @@ -package org.sterl.spring.persistent_tasks.shared.model; +package org.sterl.spring.persistent_tasks.api; import java.util.EnumSet; import java.util.Set; diff --git a/core/src/main/java/org/sterl/spring/persistent_tasks/history/HistoryService.java b/core/src/main/java/org/sterl/spring/persistent_tasks/history/HistoryService.java index 52e1aafa9..3f8345214 100644 --- a/core/src/main/java/org/sterl/spring/persistent_tasks/history/HistoryService.java +++ b/core/src/main/java/org/sterl/spring/persistent_tasks/history/HistoryService.java @@ -11,11 +11,11 @@ import org.springframework.data.domain.Sort.Direction; import org.springframework.lang.Nullable; import org.sterl.spring.persistent_tasks.api.TriggerKey; +import org.sterl.spring.persistent_tasks.api.TriggerStatus; import org.sterl.spring.persistent_tasks.history.model.TriggerHistoryDetailEntity; import org.sterl.spring.persistent_tasks.history.model.TriggerHistoryLastStateEntity; import org.sterl.spring.persistent_tasks.history.repository.TriggerHistoryDetailRepository; import org.sterl.spring.persistent_tasks.history.repository.TriggerHistoryLastStateRepository; -import org.sterl.spring.persistent_tasks.shared.model.TriggerStatus; import org.sterl.spring.persistent_tasks.shared.stereotype.TransactionalService; import org.sterl.spring.persistent_tasks.trigger.TriggerService; import org.sterl.spring.persistent_tasks.trigger.model.TriggerEntity; diff --git a/core/src/main/java/org/sterl/spring/persistent_tasks/history/component/TriggerHistoryComponent.java b/core/src/main/java/org/sterl/spring/persistent_tasks/history/component/TriggerHistoryComponent.java index c4ab6e68d..9e726eb77 100644 --- a/core/src/main/java/org/sterl/spring/persistent_tasks/history/component/TriggerHistoryComponent.java +++ b/core/src/main/java/org/sterl/spring/persistent_tasks/history/component/TriggerHistoryComponent.java @@ -10,7 +10,6 @@ import org.sterl.spring.persistent_tasks.history.repository.TriggerHistoryLastStateRepository; import org.sterl.spring.persistent_tasks.shared.stereotype.TransactionalCompontant; import org.sterl.spring.persistent_tasks.trigger.event.TriggerLifeCycleEvent; -import org.sterl.spring.persistent_tasks.trigger.model.TriggerEntity; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -23,27 +22,25 @@ public class TriggerHistoryComponent { private final TriggerHistoryLastStateRepository triggerHistoryLastStateRepository; private final TriggerHistoryDetailRepository triggerHistoryDetailRepository; - public void write(TriggerEntity e) { + @Transactional(timeout = 10) + @EventListener + public void onPersistentTaskEvent(TriggerLifeCycleEvent e) { + log.debug("Received event={} for {} new status={}", + e.getClass().getSimpleName(), + e.key(), e.status()); + + var state = new TriggerHistoryLastStateEntity(); - state.setId(e.getId()); - state.setData(e.getData().toBuilder().build()); + state.setId(e.id()); + state.setData(e.getData().copy()); triggerHistoryLastStateRepository.save(state); var detail = new TriggerHistoryDetailEntity(); - detail.setInstanceId(e.getId()); + detail.setInstanceId(e.id()); detail.setData(e.getData().toBuilder() .state(null) + .createdTime(OffsetDateTime.now()) .build()); - detail.getData().setCreatedTime(OffsetDateTime.now()); triggerHistoryDetailRepository.save(detail); } - - @Transactional(timeout = 10) - @EventListener - public void onPersistentTaskEvent(TriggerLifeCycleEvent triggerLifeCycleEvent) { - log.debug("Received event={} for {} new status={}", - triggerLifeCycleEvent.getClass().getSimpleName(), - triggerLifeCycleEvent.key(), triggerLifeCycleEvent.status()); - write(triggerLifeCycleEvent.trigger()); - } } diff --git a/core/src/main/java/org/sterl/spring/persistent_tasks/scheduler/SchedulerService.java b/core/src/main/java/org/sterl/spring/persistent_tasks/scheduler/SchedulerService.java index b72014aaa..6225d9351 100644 --- a/core/src/main/java/org/sterl/spring/persistent_tasks/scheduler/SchedulerService.java +++ b/core/src/main/java/org/sterl/spring/persistent_tasks/scheduler/SchedulerService.java @@ -4,7 +4,9 @@ import java.time.OffsetDateTime; import java.util.Collections; import java.util.List; +import java.util.Map; import java.util.Optional; +import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.Future; import org.springframework.lang.NonNull; @@ -44,6 +46,7 @@ public class SchedulerService { private final TaskExecutorComponent taskExecutor; private final EditSchedulerStatusComponent editSchedulerStatus; private final TransactionTemplate trx; + private final Map shouldRun = new ConcurrentHashMap<>(); @PostConstruct public void start() { @@ -136,6 +139,7 @@ public TriggerKey runOrQueue( if (taskExecutor.getFreeThreads() > 0) { trigger = triggerService.markTriggersAsRunning(trigger, name); pingRegistry().addRunning(1); + shouldRun.put(trigger.getId(), trigger); } else { log.debug("Currently not enough free thread available {} of {} in use. PersistentTask {} queued.", taskExecutor.getFreeThreads(), taskExecutor.getMaxThreads(), trigger.getKey()); @@ -147,9 +151,10 @@ public TriggerKey runOrQueue( @TransactionalEventListener(phase = TransactionPhase.AFTER_COMMIT) void checkIfTrigerIsRunning(TriggerAddedEvent addedTrigger) { - if (addedTrigger.isRunningOn(name) && !taskExecutor.isRunning(addedTrigger.trigger())) { + final var toRun = shouldRun.remove(addedTrigger.id()); + if (toRun != null) { log.debug("New triger added for imidiate execution {}", addedTrigger.key()); - taskExecutor.submit(addedTrigger.trigger()); + taskExecutor.submit(toRun); } } diff --git a/core/src/main/java/org/sterl/spring/persistent_tasks/shared/model/HasTriggerData.java b/core/src/main/java/org/sterl/spring/persistent_tasks/shared/model/HasTriggerData.java index bdddf98b5..ce21166a2 100644 --- a/core/src/main/java/org/sterl/spring/persistent_tasks/shared/model/HasTriggerData.java +++ b/core/src/main/java/org/sterl/spring/persistent_tasks/shared/model/HasTriggerData.java @@ -4,10 +4,18 @@ import java.time.OffsetDateTime; import org.sterl.spring.persistent_tasks.api.TaskId; +import org.sterl.spring.persistent_tasks.api.TriggerKey; +import org.sterl.spring.persistent_tasks.api.TriggerStatus; public interface HasTriggerData { TriggerData getData(); + default TriggerKey key() { + return getData().getKey(); + } + default TriggerStatus status() { + return getData().getStatus(); + } default boolean isRunning() { return getData().getStatus() == TriggerStatus.RUNNING; } diff --git a/core/src/main/java/org/sterl/spring/persistent_tasks/shared/model/TriggerData.java b/core/src/main/java/org/sterl/spring/persistent_tasks/shared/model/TriggerData.java index 1d3bfc607..42d68871c 100644 --- a/core/src/main/java/org/sterl/spring/persistent_tasks/shared/model/TriggerData.java +++ b/core/src/main/java/org/sterl/spring/persistent_tasks/shared/model/TriggerData.java @@ -4,6 +4,7 @@ import java.time.OffsetDateTime; import org.sterl.spring.persistent_tasks.api.TriggerKey; +import org.sterl.spring.persistent_tasks.api.TriggerStatus; import jakarta.persistence.AttributeOverride; import jakarta.persistence.AttributeOverrides; @@ -86,4 +87,8 @@ public void updateRunningDuration() { private String exceptionName; @Lob private String lastException; + + public TriggerData copy() { + return this.toBuilder().build(); + } } diff --git a/core/src/main/java/org/sterl/spring/persistent_tasks/shared/repository/TriggerDataRepository.java b/core/src/main/java/org/sterl/spring/persistent_tasks/shared/repository/TriggerDataRepository.java index 9aab4124d..daf4d49c0 100644 --- a/core/src/main/java/org/sterl/spring/persistent_tasks/shared/repository/TriggerDataRepository.java +++ b/core/src/main/java/org/sterl/spring/persistent_tasks/shared/repository/TriggerDataRepository.java @@ -11,8 +11,8 @@ import org.springframework.data.repository.NoRepositoryBean; import org.springframework.data.repository.query.Param; import org.sterl.spring.persistent_tasks.api.TriggerKey; +import org.sterl.spring.persistent_tasks.api.TriggerStatus; import org.sterl.spring.persistent_tasks.shared.model.HasTriggerData; -import org.sterl.spring.persistent_tasks.shared.model.TriggerStatus; @NoRepositoryBean public interface TriggerDataRepository extends JpaRepository { diff --git a/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/TriggerService.java b/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/TriggerService.java index 2269b9ca5..0ddee5d26 100644 --- a/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/TriggerService.java +++ b/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/TriggerService.java @@ -14,7 +14,7 @@ import org.sterl.spring.persistent_tasks.api.AddTriggerRequest; import org.sterl.spring.persistent_tasks.api.TaskId; import org.sterl.spring.persistent_tasks.api.TriggerKey; -import org.sterl.spring.persistent_tasks.shared.model.TriggerStatus; +import org.sterl.spring.persistent_tasks.api.TriggerStatus; import org.sterl.spring.persistent_tasks.shared.stereotype.TransactionalService; import org.sterl.spring.persistent_tasks.task.TaskService; import org.sterl.spring.persistent_tasks.trigger.component.EditTriggerComponent; diff --git a/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/component/EditTriggerComponent.java b/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/component/EditTriggerComponent.java index fca62afc3..81a1859f6 100644 --- a/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/component/EditTriggerComponent.java +++ b/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/component/EditTriggerComponent.java @@ -12,8 +12,8 @@ import org.springframework.transaction.annotation.Transactional; import org.sterl.spring.persistent_tasks.api.AddTriggerRequest; import org.sterl.spring.persistent_tasks.api.TriggerKey; +import org.sterl.spring.persistent_tasks.api.TriggerStatus; import org.sterl.spring.persistent_tasks.shared.model.TriggerData; -import org.sterl.spring.persistent_tasks.shared.model.TriggerStatus; import org.sterl.spring.persistent_tasks.trigger.event.TriggerAddedEvent; import org.sterl.spring.persistent_tasks.trigger.event.TriggerCanceledEvent; import org.sterl.spring.persistent_tasks.trigger.event.TriggerFailedEvent; @@ -48,11 +48,12 @@ public Optional completeTaskWithStatus(TriggerKey key, Serializab t.complete(e); if (t.getData().getStatus() == TriggerStatus.SUCCESS) { - publisher.publishEvent(new TriggerSuccessEvent(t, state)); + publisher.publishEvent(new TriggerSuccessEvent( + t.getId(), t.copyData(), state)); log.debug("Setting {} to status={} {}", key, t.getData().getStatus(), e == null ? "" : "error=" + e.getClass().getSimpleName()); } else { - publisher.publishEvent(new TriggerFailedEvent(t, state, e)); + publisher.publishEvent(new TriggerFailedEvent(t.getId(), t.copyData(), state, e)); log.info("Setting {} to status={} {}", key, t.getData().getStatus(), e == null ? "" : "error=" + e.getClass().getSimpleName()); } @@ -73,7 +74,8 @@ public Optional cancelTask(TriggerKey id) { .findByKey(id) // .map(t -> { t.cancel(); - publisher.publishEvent(new TriggerCanceledEvent(t, + publisher.publishEvent(new TriggerCanceledEvent( + t.getId(), t.copyData(), stateSerializer.deserializeOrNull(t.getData().getState()))); triggerRepository.delete(t); return t; @@ -94,7 +96,8 @@ public TriggerEntity addTrigger(AddTriggerRequest ti result = triggerRepository.save(result); log.debug("Added trigger={}", result); } - publisher.publishEvent(new TriggerAddedEvent(result, tigger.state())); + publisher.publishEvent(new TriggerAddedEvent( + result.getId(), result.copyData(), tigger.state())); return result; } diff --git a/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/component/LockNextTriggerComponent.java b/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/component/LockNextTriggerComponent.java index 99e5fb1ae..d1c3a3d17 100644 --- a/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/component/LockNextTriggerComponent.java +++ b/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/component/LockNextTriggerComponent.java @@ -7,7 +7,7 @@ import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; import org.sterl.spring.persistent_tasks.api.TriggerKey; -import org.sterl.spring.persistent_tasks.shared.model.TriggerStatus; +import org.sterl.spring.persistent_tasks.api.TriggerStatus; import org.sterl.spring.persistent_tasks.trigger.model.TriggerEntity; import org.sterl.spring.persistent_tasks.trigger.repository.TriggerRepository; diff --git a/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/component/ReadTriggerComponent.java b/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/component/ReadTriggerComponent.java index 413d1653b..9fbdff8f1 100644 --- a/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/component/ReadTriggerComponent.java +++ b/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/component/ReadTriggerComponent.java @@ -10,7 +10,7 @@ import org.springframework.lang.Nullable; import org.sterl.spring.persistent_tasks.api.TaskId; import org.sterl.spring.persistent_tasks.api.TriggerKey; -import org.sterl.spring.persistent_tasks.shared.model.TriggerStatus; +import org.sterl.spring.persistent_tasks.api.TriggerStatus; import org.sterl.spring.persistent_tasks.shared.stereotype.TransactionalCompontant; import org.sterl.spring.persistent_tasks.trigger.model.TriggerEntity; import org.sterl.spring.persistent_tasks.trigger.repository.TriggerRepository; diff --git a/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/component/RunTriggerComponent.java b/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/component/RunTriggerComponent.java index 917950ffa..5a66453a5 100644 --- a/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/component/RunTriggerComponent.java +++ b/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/component/RunTriggerComponent.java @@ -73,7 +73,8 @@ Optional call() { } private Optional runTask() { - eventPublisher.publishEvent(new TriggerRunningEvent(trigger, state)); + eventPublisher.publishEvent(new TriggerRunningEvent( + trigger.getId(), trigger.copyData(), state, trigger.getRunningOn())); persistentTask.accept(state); diff --git a/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/event/TriggerAddedEvent.java b/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/event/TriggerAddedEvent.java index 5f8d1f1e8..4edfd5f9d 100644 --- a/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/event/TriggerAddedEvent.java +++ b/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/event/TriggerAddedEvent.java @@ -2,8 +2,14 @@ import java.io.Serializable; -import org.sterl.spring.persistent_tasks.trigger.model.TriggerEntity; - -public record TriggerAddedEvent(TriggerEntity trigger, Serializable state) implements TriggerLifeCycleEvent { +import org.sterl.spring.persistent_tasks.shared.model.TriggerData; + +/** + * Fired if a new trigger is added. + *

+ * Inside a transaction, it is save to join or listen for the AFTER_COMMIT + *

+ */ +public record TriggerAddedEvent(long id, TriggerData data, Serializable state) implements TriggerLifeCycleEvent { } diff --git a/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/event/TriggerCanceledEvent.java b/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/event/TriggerCanceledEvent.java index 04c1f252d..36360709b 100644 --- a/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/event/TriggerCanceledEvent.java +++ b/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/event/TriggerCanceledEvent.java @@ -2,7 +2,13 @@ import java.io.Serializable; -import org.sterl.spring.persistent_tasks.trigger.model.TriggerEntity; +import org.sterl.spring.persistent_tasks.shared.model.TriggerData; -public record TriggerCanceledEvent(TriggerEntity trigger, Serializable state) implements TriggerLifeCycleEvent { +/** + * Fired if a trigger could be canceled before it is running. + *

+ * Inside a transaction, it is save to join or listen for the AFTER_COMMIT + *

+ */ +public record TriggerCanceledEvent(long id, TriggerData data, Serializable state) implements TriggerLifeCycleEvent { } diff --git a/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/event/TriggerFailedEvent.java b/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/event/TriggerFailedEvent.java index dd6a25fa5..cc8d0ad34 100644 --- a/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/event/TriggerFailedEvent.java +++ b/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/event/TriggerFailedEvent.java @@ -2,8 +2,13 @@ import java.io.Serializable; -import org.sterl.spring.persistent_tasks.trigger.model.TriggerEntity; - -public record TriggerFailedEvent(TriggerEntity trigger, Serializable state, Exception exception) implements TriggerLifeCycleEvent { +import org.sterl.spring.persistent_tasks.shared.model.TriggerData; + +/** + *

+ * Inside a transaction, it is save to join or listen for the AFTER_COMMIT + *

+ */ +public record TriggerFailedEvent(long id, TriggerData data, Serializable state, Exception exception) implements TriggerLifeCycleEvent { } diff --git a/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/event/TriggerLifeCycleEvent.java b/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/event/TriggerLifeCycleEvent.java index 59c1dad89..56951c19e 100644 --- a/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/event/TriggerLifeCycleEvent.java +++ b/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/event/TriggerLifeCycleEvent.java @@ -4,25 +4,20 @@ import org.springframework.lang.NonNull; import org.springframework.lang.Nullable; -import org.sterl.spring.persistent_tasks.api.TriggerKey; -import org.sterl.spring.persistent_tasks.shared.model.TriggerStatus; -import org.sterl.spring.persistent_tasks.trigger.model.TriggerEntity; +import org.sterl.spring.persistent_tasks.shared.model.HasTriggerData; +import org.sterl.spring.persistent_tasks.shared.model.TriggerData; /** - * Tag any events which are fired in case something changes on a trigger + * Tag any events which are fired in case something changes on a trigger. + * The attached data is already a copy, any modification to this data will have no effect. */ -public interface TriggerLifeCycleEvent { - default TriggerKey key() { - return trigger().getKey(); - } - default TriggerStatus status() { - return trigger().getData().getStatus(); - } - default boolean isRunningOn(String name) { - return trigger().isRunning() && name != null && name.equals(trigger().getRunningOn()); +public interface TriggerLifeCycleEvent extends HasTriggerData { + default TriggerData getData() { + return data(); } + long id(); @NonNull - TriggerEntity trigger(); + TriggerData data(); @Nullable Serializable state(); } diff --git a/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/event/TriggerRunningEvent.java b/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/event/TriggerRunningEvent.java index c4a7fe411..3fd9377fa 100644 --- a/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/event/TriggerRunningEvent.java +++ b/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/event/TriggerRunningEvent.java @@ -2,11 +2,17 @@ import java.io.Serializable; -import org.sterl.spring.persistent_tasks.trigger.model.TriggerEntity; +import org.sterl.spring.persistent_tasks.shared.model.TriggerData; /** * Event fired before a trigger is executed + *

+ * This event is maybe not in a transaction and so a transactional event listener will not work. + *

*/ -public record TriggerRunningEvent(TriggerEntity trigger, Serializable state) implements TriggerLifeCycleEvent { +public record TriggerRunningEvent(long id, TriggerData data, Serializable state, String runningOn) implements TriggerLifeCycleEvent { + public boolean isRunningOn(String name) { + return isRunning() && name != null && name.equals(runningOn); + } } diff --git a/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/event/TriggerSuccessEvent.java b/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/event/TriggerSuccessEvent.java index 51dc55e01..c33b35f77 100644 --- a/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/event/TriggerSuccessEvent.java +++ b/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/event/TriggerSuccessEvent.java @@ -2,8 +2,13 @@ import java.io.Serializable; -import org.sterl.spring.persistent_tasks.trigger.model.TriggerEntity; - -public record TriggerSuccessEvent(TriggerEntity trigger, Serializable state) implements TriggerLifeCycleEvent { +import org.sterl.spring.persistent_tasks.shared.model.TriggerData; + +/** + *

+ * Inside a transaction, it is save to join or listen for the AFTER_COMMIT + *

+ */ +public record TriggerSuccessEvent(long id, TriggerData data, Serializable state) implements TriggerLifeCycleEvent { } diff --git a/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/model/TriggerEntity.java b/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/model/TriggerEntity.java index d1de923e2..4abcfbc85 100644 --- a/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/model/TriggerEntity.java +++ b/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/model/TriggerEntity.java @@ -4,9 +4,9 @@ import org.apache.commons.lang3.exception.ExceptionUtils; import org.sterl.spring.persistent_tasks.api.TriggerKey; +import org.sterl.spring.persistent_tasks.api.TriggerStatus; import org.sterl.spring.persistent_tasks.shared.model.HasTriggerData; import org.sterl.spring.persistent_tasks.shared.model.TriggerData; -import org.sterl.spring.persistent_tasks.shared.model.TriggerStatus; import jakarta.annotation.Nullable; import jakarta.persistence.Column; @@ -111,4 +111,9 @@ public TriggerEntity withState(byte[] state) { this.data.setState(state); return this; } + + public TriggerData copyData() { + if (data == null) return null; + return this.data.copy(); + } } diff --git a/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/repository/TriggerRepository.java b/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/repository/TriggerRepository.java index da2c900f3..6817d4d27 100644 --- a/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/repository/TriggerRepository.java +++ b/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/repository/TriggerRepository.java @@ -14,7 +14,7 @@ import org.springframework.data.jpa.repository.QueryHints; import org.springframework.data.repository.query.Param; import org.sterl.spring.persistent_tasks.api.TriggerKey; -import org.sterl.spring.persistent_tasks.shared.model.TriggerStatus; +import org.sterl.spring.persistent_tasks.api.TriggerStatus; import org.sterl.spring.persistent_tasks.shared.repository.TriggerDataRepository; import org.sterl.spring.persistent_tasks.trigger.model.TriggerEntity; diff --git a/core/src/test/java/org/sterl/spring/persistent_tasks/AbstractSpringTest.java b/core/src/test/java/org/sterl/spring/persistent_tasks/AbstractSpringTest.java index 87d174246..f70df765d 100644 --- a/core/src/test/java/org/sterl/spring/persistent_tasks/AbstractSpringTest.java +++ b/core/src/test/java/org/sterl/spring/persistent_tasks/AbstractSpringTest.java @@ -20,12 +20,12 @@ import org.springframework.transaction.support.TransactionTemplate; import org.sterl.spring.persistent_tasks.api.PersistentTask; import org.sterl.spring.persistent_tasks.api.TaskId; +import org.sterl.spring.persistent_tasks.api.TriggerStatus; import org.sterl.spring.persistent_tasks.api.event.TriggerTaskCommand; import org.sterl.spring.persistent_tasks.history.HistoryService; import org.sterl.spring.persistent_tasks.scheduler.SchedulerService; import org.sterl.spring.persistent_tasks.scheduler.component.EditSchedulerStatusComponent; import org.sterl.spring.persistent_tasks.scheduler.component.TaskExecutorComponent; -import org.sterl.spring.persistent_tasks.shared.model.TriggerStatus; import org.sterl.spring.persistent_tasks.task.TaskService; import org.sterl.spring.persistent_tasks.trigger.TriggerService; import org.sterl.spring.persistent_tasks.trigger.model.TriggerEntity; diff --git a/core/src/test/java/org/sterl/spring/persistent_tasks/TaskSchedulerServiceTest.java b/core/src/test/java/org/sterl/spring/persistent_tasks/TaskSchedulerServiceTest.java index 42839c766..1deece043 100644 --- a/core/src/test/java/org/sterl/spring/persistent_tasks/TaskSchedulerServiceTest.java +++ b/core/src/test/java/org/sterl/spring/persistent_tasks/TaskSchedulerServiceTest.java @@ -9,7 +9,7 @@ import org.sterl.spring.persistent_tasks.api.PersistentTask; import org.sterl.spring.persistent_tasks.api.RetryStrategy; import org.sterl.spring.persistent_tasks.api.TaskId; -import org.sterl.spring.persistent_tasks.shared.model.TriggerStatus; +import org.sterl.spring.persistent_tasks.api.TriggerStatus; class TaskSchedulerServiceTest extends AbstractSpringTest { diff --git a/core/src/test/java/org/sterl/spring/persistent_tasks/history/HistoryServiceTest.java b/core/src/test/java/org/sterl/spring/persistent_tasks/history/HistoryServiceTest.java index d0083e437..e7d48036a 100644 --- a/core/src/test/java/org/sterl/spring/persistent_tasks/history/HistoryServiceTest.java +++ b/core/src/test/java/org/sterl/spring/persistent_tasks/history/HistoryServiceTest.java @@ -12,7 +12,7 @@ import org.sterl.spring.persistent_tasks.AbstractSpringTest; import org.sterl.spring.persistent_tasks.AbstractSpringTest.TaskConfig.Task3; import org.sterl.spring.persistent_tasks.api.AddTriggerRequest; -import org.sterl.spring.persistent_tasks.shared.model.TriggerStatus; +import org.sterl.spring.persistent_tasks.api.TriggerStatus; import org.sterl.spring.persistent_tasks.trigger.model.TriggerEntity; class HistoryServiceTest extends AbstractSpringTest { diff --git a/core/src/test/java/org/sterl/spring/persistent_tasks/history/repository/TriggerHistoryDetailRepositoryTest.java b/core/src/test/java/org/sterl/spring/persistent_tasks/history/repository/TriggerHistoryDetailRepositoryTest.java index e82497ece..c9d3e6f6b 100644 --- a/core/src/test/java/org/sterl/spring/persistent_tasks/history/repository/TriggerHistoryDetailRepositoryTest.java +++ b/core/src/test/java/org/sterl/spring/persistent_tasks/history/repository/TriggerHistoryDetailRepositoryTest.java @@ -8,8 +8,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.PageRequest; import org.sterl.spring.persistent_tasks.AbstractSpringTest; +import org.sterl.spring.persistent_tasks.api.TriggerStatus; import org.sterl.spring.persistent_tasks.history.model.TriggerHistoryDetailEntity; -import org.sterl.spring.persistent_tasks.shared.model.TriggerStatus; class TriggerHistoryDetailRepositoryTest extends AbstractSpringTest { diff --git a/core/src/test/java/org/sterl/spring/persistent_tasks/scheduler/SchedulerServiceTest.java b/core/src/test/java/org/sterl/spring/persistent_tasks/scheduler/SchedulerServiceTest.java index 9acaaadb0..281042897 100644 --- a/core/src/test/java/org/sterl/spring/persistent_tasks/scheduler/SchedulerServiceTest.java +++ b/core/src/test/java/org/sterl/spring/persistent_tasks/scheduler/SchedulerServiceTest.java @@ -15,8 +15,8 @@ import org.sterl.spring.persistent_tasks.api.TaskId; import org.sterl.spring.persistent_tasks.api.TaskId.TaskTriggerBuilder; import org.sterl.spring.persistent_tasks.api.TriggerKey; +import org.sterl.spring.persistent_tasks.api.TriggerStatus; import org.sterl.spring.persistent_tasks.scheduler.entity.SchedulerEntity; -import org.sterl.spring.persistent_tasks.shared.model.TriggerStatus; class SchedulerServiceTest extends AbstractSpringTest { diff --git a/core/src/test/java/org/sterl/spring/persistent_tasks/scheduler/SchedulerServiceTransactionTest.java b/core/src/test/java/org/sterl/spring/persistent_tasks/scheduler/SchedulerServiceTransactionTest.java index 7a92eb0d5..f67df4d5b 100644 --- a/core/src/test/java/org/sterl/spring/persistent_tasks/scheduler/SchedulerServiceTransactionTest.java +++ b/core/src/test/java/org/sterl/spring/persistent_tasks/scheduler/SchedulerServiceTransactionTest.java @@ -16,7 +16,7 @@ import org.sterl.spring.persistent_tasks.api.TaskId.TaskTriggerBuilder; import org.sterl.spring.persistent_tasks.api.TransactionalTask; import org.sterl.spring.persistent_tasks.api.TriggerKey; -import org.sterl.spring.persistent_tasks.shared.model.TriggerStatus; +import org.sterl.spring.persistent_tasks.api.TriggerStatus; import org.sterl.spring.sample_app.person.PersonBE; import org.sterl.spring.sample_app.person.PersonRepository; diff --git a/core/src/test/java/org/sterl/spring/persistent_tasks/scheduler/TaskFailoverTest.java b/core/src/test/java/org/sterl/spring/persistent_tasks/scheduler/TaskFailoverTest.java index a1548637b..0efcd9d0c 100644 --- a/core/src/test/java/org/sterl/spring/persistent_tasks/scheduler/TaskFailoverTest.java +++ b/core/src/test/java/org/sterl/spring/persistent_tasks/scheduler/TaskFailoverTest.java @@ -9,7 +9,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.sterl.spring.persistent_tasks.AbstractSpringTest; import org.sterl.spring.persistent_tasks.api.TaskId; -import org.sterl.spring.persistent_tasks.shared.model.TriggerStatus; +import org.sterl.spring.persistent_tasks.api.TriggerStatus; class TaskFailoverTest extends AbstractSpringTest { diff --git a/core/src/test/java/org/sterl/spring/persistent_tasks/trigger/TriggerServiceTest.java b/core/src/test/java/org/sterl/spring/persistent_tasks/trigger/TriggerServiceTest.java index 3656ee70a..a8dc4207a 100644 --- a/core/src/test/java/org/sterl/spring/persistent_tasks/trigger/TriggerServiceTest.java +++ b/core/src/test/java/org/sterl/spring/persistent_tasks/trigger/TriggerServiceTest.java @@ -18,7 +18,7 @@ import org.sterl.spring.persistent_tasks.api.TaskId; import org.sterl.spring.persistent_tasks.api.TaskId.TaskTriggerBuilder; import org.sterl.spring.persistent_tasks.api.TriggerKey; -import org.sterl.spring.persistent_tasks.shared.model.TriggerStatus; +import org.sterl.spring.persistent_tasks.api.TriggerStatus; import org.sterl.spring.persistent_tasks.task.repository.TaskRepository; import org.sterl.spring.persistent_tasks.trigger.model.TriggerEntity; import org.sterl.spring.persistent_tasks.trigger.repository.TriggerRepository; diff --git a/core/src/test/java/org/sterl/spring/persistent_tasks/trigger/api/TriggerResourceTest.java b/core/src/test/java/org/sterl/spring/persistent_tasks/trigger/api/TriggerResourceTest.java index bec8180c0..b468b3ff5 100644 --- a/core/src/test/java/org/sterl/spring/persistent_tasks/trigger/api/TriggerResourceTest.java +++ b/core/src/test/java/org/sterl/spring/persistent_tasks/trigger/api/TriggerResourceTest.java @@ -16,7 +16,7 @@ import org.sterl.spring.persistent_tasks.AbstractSpringTest.TaskConfig.Task3; import org.sterl.spring.persistent_tasks.api.TaskId.TaskTriggerBuilder; import org.sterl.spring.persistent_tasks.api.Trigger; -import org.sterl.spring.persistent_tasks.shared.model.TriggerStatus; +import org.sterl.spring.persistent_tasks.api.TriggerStatus; class TriggerResourceTest extends AbstractSpringTest { From ace87b9355159677122de7e775fe46f36ede7afb Mon Sep 17 00:00:00 2001 From: Paul Sterl Date: Fri, 10 Jan 2025 13:36:16 +0100 Subject: [PATCH 2/9] update --- .../PersistentTaskService.java | 18 ++++++++-- .../component/TriggerHistoryComponent.java | 33 +++++++++++++++---- .../history/HistoryServiceTest.java | 18 ++++++++++ .../SchedulerServiceTransactionTest.java | 33 ++++++++++++++++--- 4 files changed, 87 insertions(+), 15 deletions(-) diff --git a/core/src/main/java/org/sterl/spring/persistent_tasks/PersistentTaskService.java b/core/src/main/java/org/sterl/spring/persistent_tasks/PersistentTaskService.java index 921ad22b4..e7c734531 100644 --- a/core/src/main/java/org/sterl/spring/persistent_tasks/PersistentTaskService.java +++ b/core/src/main/java/org/sterl/spring/persistent_tasks/PersistentTaskService.java @@ -60,12 +60,12 @@ void queue(TriggerTaskCommand event) { if (event.triggers().size() == 1) { runOrQueue(event.triggers().iterator().next()); } else { - queueAll(event.triggers()); + queue(event.triggers()); } } /** - * Queues the given triggers. + * Queues/updates the given triggers, if the {@link TriggerKey} is already present * * @param the state type * @param triggers the triggers to add @@ -73,12 +73,24 @@ void queue(TriggerTaskCommand event) { */ @Transactional(timeout = 10) @NonNull - public List queueAll(Collection> triggers) { + public List queue(Collection> triggers) { return triggers.stream() // .map(t -> triggerService.queue(t)) // .map(TriggerEntity::getKey) // .toList(); } + /** + * Queues/updates the given trigger, if the {@link TriggerKey} is already present. + * + * @param the state type + * @param trigger the trigger to add + * @return the {@link TriggerKey} + */ + @Transactional(timeout = 5) + @NonNull + public TriggerKey queue(AddTriggerRequest trigger) { + return triggerService.queue(trigger).getKey(); + } /** * Runs the given trigger if a free threads are available diff --git a/core/src/main/java/org/sterl/spring/persistent_tasks/history/component/TriggerHistoryComponent.java b/core/src/main/java/org/sterl/spring/persistent_tasks/history/component/TriggerHistoryComponent.java index 9e726eb77..4c31d9a09 100644 --- a/core/src/main/java/org/sterl/spring/persistent_tasks/history/component/TriggerHistoryComponent.java +++ b/core/src/main/java/org/sterl/spring/persistent_tasks/history/component/TriggerHistoryComponent.java @@ -4,12 +4,16 @@ import org.springframework.context.event.EventListener; import org.springframework.transaction.annotation.Transactional; +import org.springframework.transaction.event.TransactionPhase; +import org.springframework.transaction.event.TransactionalEventListener; import org.sterl.spring.persistent_tasks.history.model.TriggerHistoryDetailEntity; import org.sterl.spring.persistent_tasks.history.model.TriggerHistoryLastStateEntity; import org.sterl.spring.persistent_tasks.history.repository.TriggerHistoryDetailRepository; import org.sterl.spring.persistent_tasks.history.repository.TriggerHistoryLastStateRepository; +import org.sterl.spring.persistent_tasks.shared.model.TriggerData; import org.sterl.spring.persistent_tasks.shared.stereotype.TransactionalCompontant; import org.sterl.spring.persistent_tasks.trigger.event.TriggerLifeCycleEvent; +import org.sterl.spring.persistent_tasks.trigger.event.TriggerRunningEvent; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -22,22 +26,37 @@ public class TriggerHistoryComponent { private final TriggerHistoryLastStateRepository triggerHistoryLastStateRepository; private final TriggerHistoryDetailRepository triggerHistoryDetailRepository; + //@Transactional(timeout = 10) + //@EventListener + void onRunning(TriggerRunningEvent e) { + log.debug("Received event={} for {} new status={}", + e.getClass().getSimpleName(), + e.key(), e.status()); + + execute(e.id(), e.data()); + } + @Transactional(timeout = 10) @EventListener - public void onPersistentTaskEvent(TriggerLifeCycleEvent e) { + //@TransactionalEventListener(phase = TransactionPhase.BEFORE_COMMIT) + void onPersistentTaskEvent(TriggerLifeCycleEvent e) { + //if (e instanceof TriggerRunningEvent) return; // we have an own listener for that log.debug("Received event={} for {} new status={}", e.getClass().getSimpleName(), e.key(), e.status()); - - var state = new TriggerHistoryLastStateEntity(); - state.setId(e.id()); - state.setData(e.getData().copy()); + execute(e.id(), e.data()); + } + + public void execute(final long triggerId, final TriggerData data) { + final var state = new TriggerHistoryLastStateEntity(); + state.setId(triggerId); + state.setData(data.copy()); triggerHistoryLastStateRepository.save(state); var detail = new TriggerHistoryDetailEntity(); - detail.setInstanceId(e.id()); - detail.setData(e.getData().toBuilder() + detail.setInstanceId(triggerId); + detail.setData(data.toBuilder() .state(null) .createdTime(OffsetDateTime.now()) .build()); diff --git a/core/src/test/java/org/sterl/spring/persistent_tasks/history/HistoryServiceTest.java b/core/src/test/java/org/sterl/spring/persistent_tasks/history/HistoryServiceTest.java index e7d48036a..c57463b07 100644 --- a/core/src/test/java/org/sterl/spring/persistent_tasks/history/HistoryServiceTest.java +++ b/core/src/test/java/org/sterl/spring/persistent_tasks/history/HistoryServiceTest.java @@ -54,4 +54,22 @@ void testTriggerHistory() throws TimeoutException, InterruptedException { assertThat(triggers.get(1).getData().getStatus()).isEqualTo(TriggerStatus.RUNNING); assertThat(triggers.get(2).getData().getStatus()).isEqualTo(TriggerStatus.WAITING); } + + @Test + void testTriggerHistoryTrx() throws TimeoutException, InterruptedException { + // GIVEN + final var trigger = Task3.ID.newUniqueTrigger("Hallo"); + persistentTaskService.queue(trigger); + // WHEN + hibernateAsserts.reset(); + schedulerService.triggerNextTasks().forEach(t -> { + try {t.get();} catch (Exception ex) {throw new RuntimeException(ex);} + }); + + // THEN + // 2 to get the work + // 1 for the running history + // 1 for the success history + hibernateAsserts.assertTrxCount(4); + } } diff --git a/core/src/test/java/org/sterl/spring/persistent_tasks/scheduler/SchedulerServiceTransactionTest.java b/core/src/test/java/org/sterl/spring/persistent_tasks/scheduler/SchedulerServiceTransactionTest.java index f67df4d5b..3c39502f5 100644 --- a/core/src/test/java/org/sterl/spring/persistent_tasks/scheduler/SchedulerServiceTransactionTest.java +++ b/core/src/test/java/org/sterl/spring/persistent_tasks/scheduler/SchedulerServiceTransactionTest.java @@ -3,7 +3,9 @@ import static org.assertj.core.api.Assertions.assertThat; import java.util.concurrent.ExecutionException; +import java.util.concurrent.TimeoutException; import java.util.concurrent.atomic.AtomicBoolean; +import java.util.concurrent.atomic.AtomicInteger; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -11,6 +13,7 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.sterl.spring.persistent_tasks.AbstractSpringTest; +import org.sterl.spring.persistent_tasks.AbstractSpringTest.TaskConfig.Task3; import org.sterl.spring.persistent_tasks.api.PersistentTask; import org.sterl.spring.persistent_tasks.api.RetryStrategy; import org.sterl.spring.persistent_tasks.api.TaskId.TaskTriggerBuilder; @@ -23,7 +26,8 @@ class SchedulerServiceTransactionTest extends AbstractSpringTest { private SchedulerService subject; - private static AtomicBoolean sendError = new AtomicBoolean(false); + private static final AtomicBoolean sendError = new AtomicBoolean(false); + private static final AtomicInteger sleepTime = new AtomicInteger(50); @Autowired private PersonRepository personRepository; @Configuration @@ -34,10 +38,9 @@ TransactionalTask savePersonInTrx(PersonRepository personRepository) { @Override public void accept(String name) { try { - Thread.sleep(50); + if (sleepTime.intValue() > 0) Thread.sleep(sleepTime.intValue()); } catch (InterruptedException e) { - // TODO Auto-generated catch block - e.printStackTrace(); + Thread.interrupted(); } personRepository.save(new PersonBE(name)); if (sendError.get()) { @@ -49,7 +52,7 @@ public RetryStrategy retryStrategy() { } }; } - + @Bean PersistentTask savePersonNoTrx(PersonRepository personRepository) { return new PersistentTask<>() { @@ -172,6 +175,26 @@ void testRollbackAndRetry() throws Exception { assertExecutionCount(key, 2); assertThat(personRepository.count()).isOne(); } + + @Test + void testTriggerHistoryTrx() throws TimeoutException, InterruptedException { + // GIVEN + sleepTime.set(0); + final var trigger = Task3.ID.newUniqueTrigger("savePersonNoTrx"); + persistentTaskService.queue(trigger); + // WHEN + hibernateAsserts.reset(); + schedulerService.triggerNextTasks().forEach(t -> { + try {t.get();} catch (Exception ex) {throw new RuntimeException(ex);} + }); + + // THEN + // 2 to get the work + // 1 for the running history + // 1 for the success history + hibernateAsserts.assertTrxCount(4); + } + private void assertExecutionCount(TriggerKey triggerKey, int count) throws InterruptedException, ExecutionException { var data = persistentTaskService.getLastTriggerData(triggerKey); From 16527daebe303051711c53260a1ad0e2ca9b5f8c Mon Sep 17 00:00:00 2001 From: Paul Sterl Date: Fri, 10 Jan 2025 18:40:28 +0100 Subject: [PATCH 3/9] adjusted transaction handling during the flow --- .../PersistentTaskService.java | 7 + .../SpringPersistentTasksConfig.java | 2 + .../history/HistoryService.java | 8 +- .../component/TriggerHistoryComponent.java | 20 ++- .../TriggerHistoryLastStateRepository.java | 1 - .../scheduler/SchedulerService.java | 62 ++++---- .../persistent_tasks/task/TaskService.java | 4 - .../HandleTriggerExceptionComponent.java | 55 +++++++ .../component/RunTriggerComponent.java | 45 +----- .../SchedulerServiceTransactionTest.java | 141 +++++++++++------- .../task/TaskTransactionTest.java | 2 +- .../test/java/org/sterl/test/Countdown.java | 26 ++++ 12 files changed, 231 insertions(+), 142 deletions(-) create mode 100644 core/src/main/java/org/sterl/spring/persistent_tasks/trigger/component/HandleTriggerExceptionComponent.java create mode 100644 core/src/test/java/org/sterl/test/Countdown.java diff --git a/core/src/main/java/org/sterl/spring/persistent_tasks/PersistentTaskService.java b/core/src/main/java/org/sterl/spring/persistent_tasks/PersistentTaskService.java index e7c734531..c43a9d7f1 100644 --- a/core/src/main/java/org/sterl/spring/persistent_tasks/PersistentTaskService.java +++ b/core/src/main/java/org/sterl/spring/persistent_tasks/PersistentTaskService.java @@ -9,6 +9,7 @@ import java.util.concurrent.Future; import org.springframework.context.event.EventListener; +import org.springframework.data.domain.Pageable; import org.springframework.lang.NonNull; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -55,6 +56,12 @@ public Optional getLastTriggerData(TriggerKey key) { } } + public Optional getLastDetailData(TriggerKey key) { + var data = historyService.findAllDetailsForKey(key, Pageable.ofSize(1)); + if (data.isEmpty()) return Optional.empty(); + return Optional.of(data.getContent().get(0).getData()); + } + @EventListener void queue(TriggerTaskCommand event) { if (event.triggers().size() == 1) { diff --git a/core/src/main/java/org/sterl/spring/persistent_tasks/SpringPersistentTasksConfig.java b/core/src/main/java/org/sterl/spring/persistent_tasks/SpringPersistentTasksConfig.java index a2f7a70b8..39fcfb2c1 100644 --- a/core/src/main/java/org/sterl/spring/persistent_tasks/SpringPersistentTasksConfig.java +++ b/core/src/main/java/org/sterl/spring/persistent_tasks/SpringPersistentTasksConfig.java @@ -3,10 +3,12 @@ import org.springframework.boot.autoconfigure.AutoConfigurationPackage; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; +import org.springframework.scheduling.annotation.EnableAsync; import org.springframework.scheduling.annotation.EnableScheduling; @Configuration @EnableScheduling +@EnableAsync @AutoConfigurationPackage(basePackageClasses = EnableSpringPersistentTasks.class) @ComponentScan(basePackageClasses = EnableSpringPersistentTasks.class) public class SpringPersistentTasksConfig { diff --git a/core/src/main/java/org/sterl/spring/persistent_tasks/history/HistoryService.java b/core/src/main/java/org/sterl/spring/persistent_tasks/history/HistoryService.java index 3f8345214..0406cdecd 100644 --- a/core/src/main/java/org/sterl/spring/persistent_tasks/history/HistoryService.java +++ b/core/src/main/java/org/sterl/spring/persistent_tasks/history/HistoryService.java @@ -64,7 +64,7 @@ public Page findAllDetailsForKey(TriggerKey key) { return findAllDetailsForKey(key, PageRequest.of(0, 100)); } public Page findAllDetailsForKey(TriggerKey key, Pageable page) { - page = sortByIdIfNeeded(page); + page = applyDefaultSortIfNeeded(page); return triggerHistoryDetailRepository.listKnownStatusFor(key, page); } @@ -97,7 +97,7 @@ public long countTriggers(TriggerKey key) { public Page findTriggerState( @Nullable TriggerKey key, Pageable page) { - page = sortByIdIfNeeded(page); + page = applyDefaultSortIfNeeded(page); if (key == null) return triggerHistoryLastStateRepository.findAll(page); if (key.getId() == null && key.getTaskName() == null) return triggerHistoryLastStateRepository.findAll(page); if (key.getId() == null && key.getTaskName() != null) { @@ -109,10 +109,10 @@ public Page findTriggerState( page); } - private Pageable sortByIdIfNeeded(Pageable page) { + private Pageable applyDefaultSortIfNeeded(Pageable page) { if (page.getSort() == Sort.unsorted()) { return PageRequest.of(page.getPageNumber(), page.getPageSize(), - Sort.by(Direction.DESC, "id")); + Sort.by(Direction.DESC, "data.createdTime", "id")); } return page; } diff --git a/core/src/main/java/org/sterl/spring/persistent_tasks/history/component/TriggerHistoryComponent.java b/core/src/main/java/org/sterl/spring/persistent_tasks/history/component/TriggerHistoryComponent.java index 4c31d9a09..7c93d633a 100644 --- a/core/src/main/java/org/sterl/spring/persistent_tasks/history/component/TriggerHistoryComponent.java +++ b/core/src/main/java/org/sterl/spring/persistent_tasks/history/component/TriggerHistoryComponent.java @@ -3,6 +3,7 @@ import java.time.OffsetDateTime; import org.springframework.context.event.EventListener; +import org.springframework.scheduling.annotation.Async; import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.event.TransactionPhase; import org.springframework.transaction.event.TransactionalEventListener; @@ -26,9 +27,14 @@ public class TriggerHistoryComponent { private final TriggerHistoryLastStateRepository triggerHistoryLastStateRepository; private final TriggerHistoryDetailRepository triggerHistoryDetailRepository; - //@Transactional(timeout = 10) - //@EventListener - void onRunning(TriggerRunningEvent e) { + // we have to ensure to run in an own transaction + // as if the trigger fails, a rollback would also remove this entry + // furthermore async to ensure that we would not block + // as REQURES_NEW would block two DB connections ... + @Async + @Transactional(timeout = 10) + @EventListener + public void onRunning(TriggerRunningEvent e) { log.debug("Received event={} for {} new status={}", e.getClass().getSimpleName(), e.key(), e.status()); @@ -36,11 +42,11 @@ void onRunning(TriggerRunningEvent e) { execute(e.id(), e.data()); } - @Transactional(timeout = 10) - @EventListener - //@TransactionalEventListener(phase = TransactionPhase.BEFORE_COMMIT) + // @Transactional(timeout = 10) + // @EventListener + @TransactionalEventListener(phase = TransactionPhase.BEFORE_COMMIT) void onPersistentTaskEvent(TriggerLifeCycleEvent e) { - //if (e instanceof TriggerRunningEvent) return; // we have an own listener for that + if (e instanceof TriggerRunningEvent) return; // we have an own listener for that log.debug("Received event={} for {} new status={}", e.getClass().getSimpleName(), e.key(), e.status()); diff --git a/core/src/main/java/org/sterl/spring/persistent_tasks/history/repository/TriggerHistoryLastStateRepository.java b/core/src/main/java/org/sterl/spring/persistent_tasks/history/repository/TriggerHistoryLastStateRepository.java index 42239566a..5bc208d9c 100644 --- a/core/src/main/java/org/sterl/spring/persistent_tasks/history/repository/TriggerHistoryLastStateRepository.java +++ b/core/src/main/java/org/sterl/spring/persistent_tasks/history/repository/TriggerHistoryLastStateRepository.java @@ -4,5 +4,4 @@ public interface TriggerHistoryLastStateRepository extends HistoryTriggerRepository { - } diff --git a/core/src/main/java/org/sterl/spring/persistent_tasks/scheduler/SchedulerService.java b/core/src/main/java/org/sterl/spring/persistent_tasks/scheduler/SchedulerService.java index 6225d9351..54626da77 100644 --- a/core/src/main/java/org/sterl/spring/persistent_tasks/scheduler/SchedulerService.java +++ b/core/src/main/java/org/sterl/spring/persistent_tasks/scheduler/SchedulerService.java @@ -30,11 +30,10 @@ import lombok.extern.slf4j.Slf4j; /** - * Use this service if direct access to the Scheduler is required. - *
- * Note: This Service is optional, as it could be disabled if no background - * tasks should be execute on this note. As so the {@link TriggerService} should be - * preferred to queue tasks. + * Use this service if direct access to the Scheduler is required.
+ * Note: This Service is optional, as it could be disabled if no + * background tasks should be execute on this note. As so the + * {@link TriggerService} should be preferred to queue tasks. */ @RequiredArgsConstructor @Slf4j @@ -73,22 +72,20 @@ public void shutdownNow() { editSchedulerStatus.offline(name); } + @Transactional public SchedulerEntity pingRegistry() { - // using trx template to ensure the TRX is started if we use this method internally - return trx.execute(t -> { - var result = editSchedulerStatus.checkinToRegistry(name); - result.setRunnungTasks(taskExecutor.getRunningTasks()); - result.setTasksSlotCount(taskExecutor.getMaxThreads()); - log.debug("Ping {}", result); - return result; - }); + var result = editSchedulerStatus.checkinToRegistry(name); + result.setRunnungTasks(taskExecutor.getRunningTasks()); + result.setTasksSlotCount(taskExecutor.getMaxThreads()); + log.debug("Ping {}", result); + return result; } - + public SchedulerEntity getScheduler() { var result = editSchedulerStatus.get(name); return result; } - + public Optional findStatus(String name) { return editSchedulerStatus.find(name); } @@ -102,8 +99,8 @@ public List> triggerNextTasks() { } /** - * Like {@link #triggerNextTasks()} but allows to set the time e.g. to the future to trigger - * tasks which wouldn't be triggered now. + * Like {@link #triggerNextTasks()} but allows to set the time e.g. to the + * future to trigger tasks which wouldn't be triggered now. *

* This method should not be called in a transaction! *

@@ -112,11 +109,10 @@ public List> triggerNextTasks() { public List> triggerNextTasks(OffsetDateTime timeDue) { if (taskExecutor.getFreeThreads() > 0) { final var result = trx.execute(t -> { - var triggers = triggerService.lockNextTrigger(name, - taskExecutor.getFreeThreads(), timeDue); - pingRegistry().addRunning(triggers.size()); - return triggers; - }); + var triggers = triggerService.lockNextTrigger(name, taskExecutor.getFreeThreads(), timeDue); + pingRegistry().addRunning(triggers.size()); + return triggers; + }); return taskExecutor.submit(result); } else { @@ -126,13 +122,14 @@ public List> triggerNextTasks(OffsetDateTime timeDue) { } /** - * Runs the given trigger if a free threads are available - * and the runAt time is not in the future. - * @return the reference to the {@link Future} with the key, if no threads are available it is resolved + * Runs the given trigger if a free threads are available and the runAt time is + * not in the future. + * + * @return the reference to the {@link Future} with the key, if no threads are + * available it is resolved */ @Transactional(timeout = 10) - public TriggerKey runOrQueue( - AddTriggerRequest triggerRequest) { + public TriggerKey runOrQueue(AddTriggerRequest triggerRequest) { var trigger = triggerService.queue(triggerRequest); if (!trigger.shouldRunInFuture()) { @@ -141,14 +138,14 @@ public TriggerKey runOrQueue( pingRegistry().addRunning(1); shouldRun.put(trigger.getId(), trigger); } else { - log.debug("Currently not enough free thread available {} of {} in use. PersistentTask {} queued.", + log.debug("Currently not enough free thread available {} of {} in use. PersistentTask {} queued.", taskExecutor.getFreeThreads(), taskExecutor.getMaxThreads(), trigger.getKey()); } } // we will listen for the commit event to execute this trigger ... return trigger.getKey(); } - + @TransactionalEventListener(phase = TransactionPhase.AFTER_COMMIT) void checkIfTrigerIsRunning(TriggerAddedEvent addedTrigger) { final var toRun = shouldRun.remove(addedTrigger.id()); @@ -166,14 +163,11 @@ public SchedulerEntity getStatus() { public List rescheduleAbandonedTasks(OffsetDateTime timeout) { var schedulers = editSchedulerStatus.findOnlineSchedulers(timeout); - final List runningKeys = this.taskExecutor - .getRunningTriggers().stream() - .map(TriggerEntity::getKey) + final List runningKeys = this.taskExecutor.getRunningTriggers().stream().map(TriggerEntity::getKey) .toList(); int running = triggerService.markTriggersAsRunning(runningKeys, name); - log.debug("({}) - {} trigger(s) are running on {} schedulers", - running, runningKeys, schedulers); + log.debug("({}) - {} trigger(s) are running on {} schedulers", running, runningKeys, schedulers); return triggerService.rescheduleAbandonedTasks(timeout); } } diff --git a/core/src/main/java/org/sterl/spring/persistent_tasks/task/TaskService.java b/core/src/main/java/org/sterl/spring/persistent_tasks/task/TaskService.java index 9591d6cca..a37f75a07 100644 --- a/core/src/main/java/org/sterl/spring/persistent_tasks/task/TaskService.java +++ b/core/src/main/java/org/sterl/spring/persistent_tasks/task/TaskService.java @@ -5,10 +5,8 @@ import java.util.Set; import java.util.function.Consumer; -import org.springframework.boot.sql.init.dependency.DependsOnDatabaseInitialization; import org.springframework.lang.NonNull; import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.support.TransactionTemplate; import org.sterl.spring.persistent_tasks.api.PersistentTask; import org.sterl.spring.persistent_tasks.api.TaskId; @@ -18,14 +16,12 @@ import lombok.RequiredArgsConstructor; @Service -@DependsOnDatabaseInitialization @RequiredArgsConstructor public class TaskService { private final TaskTransactionComponent taskTransactionComponent; private final TaskRepository taskRepository; - @Transactional(readOnly = true) public Set> findAllTaskIds() { return this.taskRepository.all(); } diff --git a/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/component/HandleTriggerExceptionComponent.java b/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/component/HandleTriggerExceptionComponent.java new file mode 100644 index 000000000..ac2f87c16 --- /dev/null +++ b/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/component/HandleTriggerExceptionComponent.java @@ -0,0 +1,55 @@ +package org.sterl.spring.persistent_tasks.trigger.component; + +import java.time.OffsetDateTime; +import java.util.Optional; + +import org.springframework.lang.Nullable; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; +import org.sterl.spring.persistent_tasks.trigger.component.RunTriggerComponent.TaskAndState; +import org.sterl.spring.persistent_tasks.trigger.model.TriggerEntity; + +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; + +@Component +@Transactional(timeout = 30) +@RequiredArgsConstructor +@Slf4j +public class HandleTriggerExceptionComponent { + + private final EditTriggerComponent editTrigger; + + Optional execute(TaskAndState taskAndState, + @Nullable Exception e) { + + var trigger = taskAndState.trigger; + var task = taskAndState.persistentTask; + var result = editTrigger.completeTaskWithStatus(trigger.getKey(), taskAndState.state, e); + + if (task != null + && task.retryStrategy().shouldRetry(trigger.getData().getExecutionCount(), e)) { + + final OffsetDateTime retryAt = task.retryStrategy().retryAt(trigger.getData().getExecutionCount(), e); + + result = editTrigger.retryTrigger(trigger.getKey(), retryAt); + if (result.isPresent()) { + var data = result.get().getData(); + log.warn("{} failed, retry will be done at={} status={}!", + trigger.getKey(), + data.getRunAt(), + data.getStatus(), + e); + } else { + log.error("Trigger with key={} not found and may be at a wrong state!", + trigger.getKey(), e); + } + } else { + log.error("{} failed, no more retries! {}", trigger.getKey(), + e == null ? "No exception given." : e.getMessage(), e); + + editTrigger.deleteTrigger(trigger); + } + return result; + } +} diff --git a/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/component/RunTriggerComponent.java b/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/component/RunTriggerComponent.java index 5a66453a5..6feb0fa12 100644 --- a/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/component/RunTriggerComponent.java +++ b/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/component/RunTriggerComponent.java @@ -1,12 +1,13 @@ package org.sterl.spring.persistent_tasks.trigger.component; import java.io.Serializable; -import java.time.OffsetDateTime; import java.util.Optional; import org.springframework.context.ApplicationEventPublisher; import org.springframework.lang.Nullable; import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Propagation; +import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.support.TransactionTemplate; import org.sterl.spring.persistent_tasks.api.PersistentTask; import org.sterl.spring.persistent_tasks.task.TaskService; @@ -23,12 +24,14 @@ public class RunTriggerComponent { private final TaskService taskService; private final EditTriggerComponent editTrigger; + private final HandleTriggerExceptionComponent handleTriggerException; private final ApplicationEventPublisher eventPublisher; private final StateSerializer serializer = new StateSerializer(); /** * Will execute the given {@link TriggerEntity} and handle any errors etc. */ + @Transactional(propagation = Propagation.NEVER) public Optional execute(TriggerEntity trigger) { if (trigger == null) { return Optional.empty(); @@ -40,7 +43,7 @@ public Optional execute(TriggerEntity trigger) { try { return taskAndState.call(); } catch (Exception e) { - return handleTaskException(taskAndState, e); + return handleTriggerException.execute(taskAndState, e); } } @@ -53,12 +56,12 @@ private TaskAndState getTastAndState(TriggerEntity trigger) { return new TaskAndState(task, trx, state, trigger); } catch (Exception e) { // this trigger is somehow crap, no retry and done. - handleTaskException(new TaskAndState(null, Optional.empty(), null, trigger), e); + handleTriggerException.execute(new TaskAndState(null, Optional.empty(), null, trigger), e); return null; } } @RequiredArgsConstructor - private class TaskAndState { + class TaskAndState { final PersistentTask persistentTask; final Optional trx; final Serializable state; @@ -73,6 +76,7 @@ Optional call() { } private Optional runTask() { + if (!trigger.isRunning()) trigger.runOn(trigger.getRunningOn()); eventPublisher.publishEvent(new TriggerRunningEvent( trigger.getId(), trigger.copyData(), state, trigger.getRunningOn())); @@ -84,37 +88,4 @@ private Optional runTask() { return result; } } - - private Optional handleTaskException(TaskAndState taskAndState, - @Nullable Exception e) { - - var trigger = taskAndState.trigger; - var task = taskAndState.persistentTask; - var result = editTrigger.completeTaskWithStatus(trigger.getKey(), taskAndState.state, e); - - if (task != null - && task.retryStrategy().shouldRetry(trigger.getData().getExecutionCount(), e)) { - - final OffsetDateTime retryAt = task.retryStrategy().retryAt(trigger.getData().getExecutionCount(), e); - - result = editTrigger.retryTrigger(trigger.getKey(), retryAt); - if (result.isPresent()) { - var data = result.get().getData(); - log.warn("{} failed, retry will be done at={} status={}!", - trigger.getKey(), - data.getRunAt(), - data.getStatus(), - e); - } else { - log.error("Trigger with key={} not found and may be at a wrong state!", - trigger.getKey(), e); - } - } else { - log.error("{} failed, no more retries! {}", trigger.getKey(), - e == null ? "No exception given." : e.getMessage(), e); - - editTrigger.deleteTrigger(trigger); - } - return result; - } } diff --git a/core/src/test/java/org/sterl/spring/persistent_tasks/scheduler/SchedulerServiceTransactionTest.java b/core/src/test/java/org/sterl/spring/persistent_tasks/scheduler/SchedulerServiceTransactionTest.java index 3c39502f5..d3980aa5f 100644 --- a/core/src/test/java/org/sterl/spring/persistent_tasks/scheduler/SchedulerServiceTransactionTest.java +++ b/core/src/test/java/org/sterl/spring/persistent_tasks/scheduler/SchedulerServiceTransactionTest.java @@ -3,17 +3,15 @@ import static org.assertj.core.api.Assertions.assertThat; import java.util.concurrent.ExecutionException; -import java.util.concurrent.TimeoutException; import java.util.concurrent.atomic.AtomicBoolean; -import java.util.concurrent.atomic.AtomicInteger; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.transaction.support.TransactionTemplate; import org.sterl.spring.persistent_tasks.AbstractSpringTest; -import org.sterl.spring.persistent_tasks.AbstractSpringTest.TaskConfig.Task3; import org.sterl.spring.persistent_tasks.api.PersistentTask; import org.sterl.spring.persistent_tasks.api.RetryStrategy; import org.sterl.spring.persistent_tasks.api.TaskId.TaskTriggerBuilder; @@ -22,12 +20,13 @@ import org.sterl.spring.persistent_tasks.api.TriggerStatus; import org.sterl.spring.sample_app.person.PersonBE; import org.sterl.spring.sample_app.person.PersonRepository; +import org.sterl.test.Countdown; class SchedulerServiceTransactionTest extends AbstractSpringTest { private SchedulerService subject; private static final AtomicBoolean sendError = new AtomicBoolean(false); - private static final AtomicInteger sleepTime = new AtomicInteger(50); + private static final Countdown COUNTDOWN = new Countdown(); @Autowired private PersonRepository personRepository; @Configuration @@ -37,12 +36,8 @@ TransactionalTask savePersonInTrx(PersonRepository personRepository) { return new TransactionalTask() { @Override public void accept(String name) { - try { - if (sleepTime.intValue() > 0) Thread.sleep(sleepTime.intValue()); - } catch (InterruptedException e) { - Thread.interrupted(); - } personRepository.save(new PersonBE(name)); + COUNTDOWN.await(); if (sendError.get()) { throw new RuntimeException("Error requested for " + name); } @@ -54,14 +49,18 @@ public RetryStrategy retryStrategy() { } @Bean - PersistentTask savePersonNoTrx(PersonRepository personRepository) { + PersistentTask savePersonNoTrx(TransactionTemplate trx, + PersonRepository personRepository) { return new PersistentTask<>() { @Override public void accept(String name) { - personRepository.save(new PersonBE(name)); - if (sendError.get()) { - throw new RuntimeException("Error requested for " + name); - } + trx.executeWithoutResult(t -> { + personRepository.save(new PersonBE(name)); + COUNTDOWN.await(); + if (sendError.get()) { + throw new RuntimeException("Error requested for " + name); + } + }); } public RetryStrategy retryStrategy() { return RetryStrategy.THREE_RETRIES_IMMEDIATELY; @@ -79,43 +78,68 @@ public void beforeEach() throws Exception { super.beforeEach(); subject = schedulerService; personRepository.deleteAllInBatch(); + COUNTDOWN.reset(); sendError.set(false); } @Test - void testSaveTransactions() throws Exception { + void testSaveNoTransactions() throws Exception { // GIVEN final var request = TaskTriggerBuilder.newTrigger("savePersonNoTrx").state("Paul").build(); var trigger = triggerService.queue(request); // WHEN hibernateAsserts.reset(); - triggerService.run(trigger); + COUNTDOWN.countDown(); + schedulerService.triggerNextTasks().forEach(t -> { + try {t.get();} catch (Exception ex) {throw new RuntimeException(ex);} + }); // THEN - // AND one the service, one the event and one more status update - hibernateAsserts.assertTrxCount(4); + // 1. get the trigger + // 2. one the event running + // 3. for the work + // 4. for success status + hibernateAsserts.assertTrxCount(5); assertThat(personRepository.count()).isOne(); + // AND + var data = persistentTaskService.getLastDetailData(trigger.key()); + assertThat(data.get().getStatus()).isEqualTo(TriggerStatus.SUCCESS); + // AND + var history = historyService.findAllDetailsForKey(trigger.key()).getContent(); + assertThat(history.get(0).getData().getStatus()).isEqualTo(TriggerStatus.SUCCESS); + assertThat(history.get(1).getData().getStatus()).isEqualTo(TriggerStatus.RUNNING); + assertThat(history.get(2).getData().getStatus()).isEqualTo(TriggerStatus.WAITING); } - @Test - void testTrxCountTriggerService() throws Exception { + void testSaveTransactions() throws Exception { // GIVEN final var request = TaskTriggerBuilder.newTrigger("savePersonInTrx").state("Paul").build(); var trigger = triggerService.queue(request); // WHEN hibernateAsserts.reset(); - triggerService.run(trigger); + COUNTDOWN.countDown(); + schedulerService.triggerNextTasks().forEach(t -> { + try {t.get();} catch (Exception ex) {throw new RuntimeException(ex);} + }); // THEN - hibernateAsserts.assertTrxCount(1); + hibernateAsserts.assertTrxCount(3); assertThat(personRepository.count()).isOne(); + // AND + var data = persistentTaskService.getLastDetailData(trigger.key()); + assertThat(data.get().getStatus()).isEqualTo(TriggerStatus.SUCCESS); + // AND + var history = historyService.findAllDetailsForKey(trigger.key()).getContent(); + assertThat(history.get(0).getData().getStatus()).isEqualTo(TriggerStatus.SUCCESS); + assertThat(history.get(1).getData().getStatus()).isEqualTo(TriggerStatus.RUNNING); + assertThat(history.get(2).getData().getStatus()).isEqualTo(TriggerStatus.WAITING); } @Test - void testFailTrxCount() throws Exception { + void test_fail_in_transaction() throws Exception { // GIVEN final var request = TaskTriggerBuilder.newTrigger("savePersonInTrx").state("Paul").build(); var trigger = triggerService.queue(request); @@ -123,17 +147,29 @@ void testFailTrxCount() throws Exception { // WHEN hibernateAsserts.reset(); - triggerService.run(trigger); + COUNTDOWN.countDown(); + schedulerService.triggerNextTasks().forEach(t -> { + try {t.get();} catch (Exception ex) {throw new RuntimeException(ex);} + }); // THEN - // first the work which runs on error - // second the update to the trigger - // third to write the history - hibernateAsserts.assertTrxCount(3); + // 1. Get the trigger + // 2. Running history + // 3. Run the trigger which will fail + // 4. Update the status to failed and write the history + hibernateAsserts.assertTrxCount(4); + // AND + var data = persistentTaskService.getLastDetailData(trigger.key()); + assertThat(data.get().getStatus()).isEqualTo(TriggerStatus.FAILED); + // AND + var history = historyService.findAllDetailsForKey(trigger.key()).getContent(); + assertThat(history.get(0).getData().getStatus()).isEqualTo(TriggerStatus.FAILED); + assertThat(history.get(1).getData().getStatus()).isEqualTo(TriggerStatus.RUNNING); + assertThat(history.get(2).getData().getStatus()).isEqualTo(TriggerStatus.WAITING); } @Test - void testRunOrQueue() throws Exception { + void testRunOrQueueShowsRunning() throws Exception { // GIVEN var k1 = subject.runOrQueue(TaskTriggerBuilder.newTrigger("savePersonInTrx").state("Paul").build()); var k2 = subject.runOrQueue(TaskTriggerBuilder.newTrigger("savePersonInTrx").state("Paul").build()); @@ -144,27 +180,44 @@ void testRunOrQueue() throws Exception { assertThat(persistentTaskService.getLastTriggerData(k2).get().getStatus()) .isEqualTo(TriggerStatus.RUNNING); - // THEN + Thread.sleep(150); // wait for the history async events + hibernateAsserts.assertTrxCount(7); + + // WHEN + COUNTDOWN.countDown(); awaitRunningTasks(); + // THEN assertThat(personRepository.count()).isEqualTo(2); + // AND + assertThat(persistentTaskService.getLastTriggerData(k1).get().getStatus()) + .isEqualTo(TriggerStatus.SUCCESS); + assertThat(persistentTaskService.getLastTriggerData(k2).get().getStatus()) + .isEqualTo(TriggerStatus.SUCCESS); } @Test void testRollbackAndRetry() throws Exception { // GIVEN - final var triggerRequest = TaskTriggerBuilder.newTrigger("savePersonInTrx").state("Paul").build(); + final var triggerRequest = TaskTriggerBuilder.newTrigger("savePersonInTrx") + .state("Paul").build(); sendError.set(true); // WHEN var key = subject.runOrQueue(triggerRequest); + COUNTDOWN.countDown(); + awaitRunningTasks(); // THEN - awaitRunningTasks(); + hibernateAsserts.assertInsertCount(5); // AND the last status before we are back to running should be FAILED - assertThat(historyService.findAllDetailsForKey(key) - .getContent().get(0).getData().getStatus()) + var history = historyService.findAllDetailsForKey(key).getContent(); + assertThat(history.get(0).getData().getStatus()) .isEqualTo(TriggerStatus.FAILED); + assertThat(history.get(1).getData().getStatus()) + .isEqualTo(TriggerStatus.RUNNING); + assertThat(history.get(2).getData().getStatus()) + .isEqualTo(TriggerStatus.WAITING); // WHEN sendError.set(false); @@ -175,26 +228,6 @@ void testRollbackAndRetry() throws Exception { assertExecutionCount(key, 2); assertThat(personRepository.count()).isOne(); } - - @Test - void testTriggerHistoryTrx() throws TimeoutException, InterruptedException { - // GIVEN - sleepTime.set(0); - final var trigger = Task3.ID.newUniqueTrigger("savePersonNoTrx"); - persistentTaskService.queue(trigger); - // WHEN - hibernateAsserts.reset(); - schedulerService.triggerNextTasks().forEach(t -> { - try {t.get();} catch (Exception ex) {throw new RuntimeException(ex);} - }); - - // THEN - // 2 to get the work - // 1 for the running history - // 1 for the success history - hibernateAsserts.assertTrxCount(4); - } - private void assertExecutionCount(TriggerKey triggerKey, int count) throws InterruptedException, ExecutionException { var data = persistentTaskService.getLastTriggerData(triggerKey); diff --git a/core/src/test/java/org/sterl/spring/persistent_tasks/task/TaskTransactionTest.java b/core/src/test/java/org/sterl/spring/persistent_tasks/task/TaskTransactionTest.java index b0d34d65d..879d0896f 100644 --- a/core/src/test/java/org/sterl/spring/persistent_tasks/task/TaskTransactionTest.java +++ b/core/src/test/java/org/sterl/spring/persistent_tasks/task/TaskTransactionTest.java @@ -145,7 +145,7 @@ void testTransactionalTask(String task) { triggerService.run(t).get(); // THEN - hibernateAsserts.assertTrxCount(1); + hibernateAsserts.assertTrxCount(2); assertThat(personRepository.count()).isEqualTo(2); } } diff --git a/core/src/test/java/org/sterl/test/Countdown.java b/core/src/test/java/org/sterl/test/Countdown.java new file mode 100644 index 000000000..b6bdd6830 --- /dev/null +++ b/core/src/test/java/org/sterl/test/Countdown.java @@ -0,0 +1,26 @@ +package org.sterl.test; + +import java.time.Duration; +import java.util.concurrent.atomic.AtomicInteger; + +import org.awaitility.Awaitility; + +public class Countdown { + + private final AtomicInteger count = new AtomicInteger(1); + + public void await() { + Awaitility + .await("Countdown") + .atMost(Duration.ofSeconds(3)) + .until(() -> count.get() <= 0); + } + + public void countDown() { + count.decrementAndGet(); + } + + public void reset() { + count.set(1); + } +} From 238df1e9e14e1ae8c74308b334b357cd8e90dc00 Mon Sep 17 00:00:00 2001 From: Paul Sterl Date: Sat, 11 Jan 2025 15:54:26 +0100 Subject: [PATCH 4/9] write history only if the trigger is done --- CHANGELOG.md | 5 ++ .../persistent_tasks/api/HistoryOverview.java | 15 ----- .../api/TaskHistoryOverview.java | 14 +++++ .../history/HistoryService.java | 5 ++ .../history/api/TriggerHistoryResource.java | 8 ++- .../component/TriggerHistoryComponent.java | 19 ++++--- .../TriggerHistoryDetailRepository.java | 26 ++++----- .../trigger/api/TriggerResource.java | 2 +- .../component/EditTriggerComponent.java | 46 ++++++++++------ .../HandleTriggerExceptionComponent.java | 55 ------------------- .../component/RunTriggerComponent.java | 29 +++++++++- .../trigger/event/TriggerAddedEvent.java | 4 ++ .../trigger/event/TriggerCanceledEvent.java | 5 ++ .../trigger/event/TriggerFailedEvent.java | 9 ++- .../trigger/event/TriggerLifeCycleEvent.java | 4 ++ .../trigger/event/TriggerRunningEvent.java | 5 ++ .../trigger/event/TriggerSuccessEvent.java | 4 ++ .../TriggerHistoryDetailRepositoryTest.java | 11 ++-- .../SchedulerServiceTransactionTest.java | 2 - .../trigger/TriggerServiceTest.java | 9 ++- 20 files changed, 150 insertions(+), 127 deletions(-) delete mode 100644 core/src/main/java/org/sterl/spring/persistent_tasks/api/HistoryOverview.java create mode 100644 core/src/main/java/org/sterl/spring/persistent_tasks/api/TaskHistoryOverview.java delete mode 100644 core/src/main/java/org/sterl/spring/persistent_tasks/trigger/component/HandleTriggerExceptionComponent.java diff --git a/CHANGELOG.md b/CHANGELOG.md index 153e6ef0c..bf2a0b2fc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## v1.5.0 + +- Adjusted transaction handling for trigger life cycle events +- Base event entry is only written for done/finished trigger + ## v1.4.6 - (2025-01-08) - Trigger history with more details - not waiting for the transaction diff --git a/core/src/main/java/org/sterl/spring/persistent_tasks/api/HistoryOverview.java b/core/src/main/java/org/sterl/spring/persistent_tasks/api/HistoryOverview.java deleted file mode 100644 index 76cecc927..000000000 --- a/core/src/main/java/org/sterl/spring/persistent_tasks/api/HistoryOverview.java +++ /dev/null @@ -1,15 +0,0 @@ -package org.sterl.spring.persistent_tasks.api; - -import java.time.OffsetDateTime; - -public record HistoryOverview( - long instanceId, - String taskName, - long entryCount, - OffsetDateTime start, - OffsetDateTime end, - OffsetDateTime createdTime, - long executionCount, - double runningDurationInMs - ) { -} diff --git a/core/src/main/java/org/sterl/spring/persistent_tasks/api/TaskHistoryOverview.java b/core/src/main/java/org/sterl/spring/persistent_tasks/api/TaskHistoryOverview.java new file mode 100644 index 000000000..7d0e15544 --- /dev/null +++ b/core/src/main/java/org/sterl/spring/persistent_tasks/api/TaskHistoryOverview.java @@ -0,0 +1,14 @@ +package org.sterl.spring.persistent_tasks.api; + +import java.time.OffsetDateTime; + +public record TaskHistoryOverview( + String taskName, + long executionCount, + OffsetDateTime firstRun, + OffsetDateTime lastRun, + double maxDurationMs, + double minDurationMs, + double avgDurationMs + ) { +} diff --git a/core/src/main/java/org/sterl/spring/persistent_tasks/history/HistoryService.java b/core/src/main/java/org/sterl/spring/persistent_tasks/history/HistoryService.java index 0406cdecd..d53fa0c09 100644 --- a/core/src/main/java/org/sterl/spring/persistent_tasks/history/HistoryService.java +++ b/core/src/main/java/org/sterl/spring/persistent_tasks/history/HistoryService.java @@ -10,6 +10,7 @@ import org.springframework.data.domain.Sort; import org.springframework.data.domain.Sort.Direction; import org.springframework.lang.Nullable; +import org.sterl.spring.persistent_tasks.api.TaskHistoryOverview; import org.sterl.spring.persistent_tasks.api.TriggerKey; import org.sterl.spring.persistent_tasks.api.TriggerStatus; import org.sterl.spring.persistent_tasks.history.model.TriggerHistoryDetailEntity; @@ -116,4 +117,8 @@ private Pageable applyDefaultSortIfNeeded(Pageable page) { } return page; } + + public List taskHistory() { + return triggerHistoryDetailRepository.listTaskHistoryOverview(); + } } diff --git a/core/src/main/java/org/sterl/spring/persistent_tasks/history/api/TriggerHistoryResource.java b/core/src/main/java/org/sterl/spring/persistent_tasks/history/api/TriggerHistoryResource.java index 662d4bef9..01cf89113 100644 --- a/core/src/main/java/org/sterl/spring/persistent_tasks/history/api/TriggerHistoryResource.java +++ b/core/src/main/java/org/sterl/spring/persistent_tasks/history/api/TriggerHistoryResource.java @@ -4,7 +4,6 @@ import org.apache.commons.lang3.StringUtils; import org.springframework.data.domain.Pageable; -import org.springframework.data.domain.Sort.Direction; import org.springframework.data.web.PageableDefault; import org.springframework.data.web.PagedModel; import org.springframework.web.bind.annotation.GetMapping; @@ -12,6 +11,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; +import org.sterl.spring.persistent_tasks.api.TaskHistoryOverview; import org.sterl.spring.persistent_tasks.api.Trigger; import org.sterl.spring.persistent_tasks.api.TriggerKey; import org.sterl.spring.persistent_tasks.history.HistoryService; @@ -32,12 +32,16 @@ public List listInstances(@PathVariable("instanceId") long instanceId) return FromTriggerStateDetailEntity.INSTANCE.convert( // historyService.findAllDetailsForInstance(instanceId)); } + @GetMapping("task-history") + public List taskHistory() { + return historyService.taskHistory(); + } @GetMapping("history") public PagedModel list( @RequestParam(name = "id", required = false) String id, @RequestParam(name = "taskName", required = false) String taskName, - @PageableDefault(size = 100, direction = Direction.DESC, sort = "id") Pageable pageable) { + @PageableDefault(size = 100) Pageable pageable) { return FromLastTriggerStateEntity.INSTANCE.toPage( // historyService.findTriggerState( diff --git a/core/src/main/java/org/sterl/spring/persistent_tasks/history/component/TriggerHistoryComponent.java b/core/src/main/java/org/sterl/spring/persistent_tasks/history/component/TriggerHistoryComponent.java index 7c93d633a..14e829ec3 100644 --- a/core/src/main/java/org/sterl/spring/persistent_tasks/history/component/TriggerHistoryComponent.java +++ b/core/src/main/java/org/sterl/spring/persistent_tasks/history/component/TriggerHistoryComponent.java @@ -39,11 +39,9 @@ public void onRunning(TriggerRunningEvent e) { e.getClass().getSimpleName(), e.key(), e.status()); - execute(e.id(), e.data()); + execute(e.id(), e.data(), false); } - // @Transactional(timeout = 10) - // @EventListener @TransactionalEventListener(phase = TransactionPhase.BEFORE_COMMIT) void onPersistentTaskEvent(TriggerLifeCycleEvent e) { if (e instanceof TriggerRunningEvent) return; // we have an own listener for that @@ -51,14 +49,17 @@ void onPersistentTaskEvent(TriggerLifeCycleEvent e) { e.getClass().getSimpleName(), e.key(), e.status()); - execute(e.id(), e.data()); + + execute(e.id(), e.data(), e.isDone()); } - public void execute(final long triggerId, final TriggerData data) { - final var state = new TriggerHistoryLastStateEntity(); - state.setId(triggerId); - state.setData(data.copy()); - triggerHistoryLastStateRepository.save(state); + public void execute(final long triggerId, final TriggerData data, boolean isDone) { + if (isDone) { + final var state = new TriggerHistoryLastStateEntity(); + state.setId(triggerId); + state.setData(data.copy()); + triggerHistoryLastStateRepository.save(state); + } var detail = new TriggerHistoryDetailEntity(); detail.setInstanceId(triggerId); diff --git a/core/src/main/java/org/sterl/spring/persistent_tasks/history/repository/TriggerHistoryDetailRepository.java b/core/src/main/java/org/sterl/spring/persistent_tasks/history/repository/TriggerHistoryDetailRepository.java index a01b72da4..d5dda2af7 100644 --- a/core/src/main/java/org/sterl/spring/persistent_tasks/history/repository/TriggerHistoryDetailRepository.java +++ b/core/src/main/java/org/sterl/spring/persistent_tasks/history/repository/TriggerHistoryDetailRepository.java @@ -2,33 +2,29 @@ import java.util.List; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param; -import org.sterl.spring.persistent_tasks.api.HistoryOverview; +import org.sterl.spring.persistent_tasks.api.TaskHistoryOverview; import org.sterl.spring.persistent_tasks.history.model.TriggerHistoryDetailEntity; public interface TriggerHistoryDetailRepository extends HistoryTriggerRepository { @Query(""" - SELECT new org.sterl.spring.persistent_tasks.api.HistoryOverview( - e.instanceId, + SELECT new org.sterl.spring.persistent_tasks.api.TaskHistoryOverview( e.data.key.taskName, count(1) as entryCount, - MIN(e.data.start) as start, - MAX(e.data.end) as end, - MIN(e.data.createdTime) as createdTime, - MAX(e.data.executionCount) as executionCount, - AVG(e.data.runningDurationInMs) as runningDurationInMs + MIN(e.data.runAt) as firstRun, + MAX(e.data.runAt) as lastRun, + MAX(e.data.runningDurationInMs) as maxDuration, + MIN(e.data.runningDurationInMs) as minDuration, + AVG(e.data.runningDurationInMs) as avgDuration ) FROM #{#entityName} e - GROUP BY - e.instanceId, - e.data.key.taskName - ORDER BY end DESC, createdTime DESC + WHERE e.data.end IS NOT NULL + GROUP BY e.data.key.taskName + ORDER BY e.data.key.taskName ASC """) - Page listHistoryOverview(Pageable page); + List listTaskHistoryOverview(); @Query(""" SELECT e diff --git a/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/api/TriggerResource.java b/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/api/TriggerResource.java index e07681148..c6abdfd22 100644 --- a/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/api/TriggerResource.java +++ b/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/api/TriggerResource.java @@ -39,7 +39,7 @@ public long count() { public PagedModel list( @RequestParam(name = "id", required = false) String id, @RequestParam(name = "taskName", required = false) String taskName, - @PageableDefault(size = 100, direction = Direction.DESC, sort = "id") + @PageableDefault(size = 100, direction = Direction.ASC, sort = "data.runAt") Pageable pageable) { return FromTriggerEntity.INSTANCE.toPage( triggerService.findAllTriggers( diff --git a/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/component/EditTriggerComponent.java b/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/component/EditTriggerComponent.java index 81a1859f6..f03c9cbc5 100644 --- a/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/component/EditTriggerComponent.java +++ b/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/component/EditTriggerComponent.java @@ -6,6 +6,7 @@ import java.util.List; import java.util.Optional; +import org.slf4j.event.Level; import org.springframework.context.ApplicationEventPublisher; import org.springframework.lang.NonNull; import org.springframework.stereotype.Component; @@ -35,40 +36,51 @@ public class EditTriggerComponent { private final TriggerRepository triggerRepository; public Optional completeTaskWithSuccess(TriggerKey key, Serializable state) { - return this.completeTaskWithStatus(key, state, null); + final Optional result = triggerRepository.findByKey(key); + + result.ifPresent(t -> { + t.complete(null); + publisher.publishEvent(new TriggerSuccessEvent( + t.getId(), t.copyData(), state)); + log.debug("Setting {} to status={}", key, t.getData().getStatus()); + triggerRepository.delete(t); + }); + return result; } /** * Sets success or error based on the fact if an exception is given or not. */ - public Optional completeTaskWithStatus(TriggerKey key, Serializable state, Exception e) { + public Optional failTrigger( + TriggerKey key, + Serializable state, + Exception e, + OffsetDateTime retryAt) { final Optional result = triggerRepository.findByKey(key); + result.ifPresent(t -> { + log.atLevel(retryAt == null ? Level.ERROR : Level.WARN) + .setCause(e) + .log("{} failed, retryAt={}", + key, retryAt == null ? "no" : retryAt); t.complete(e); + publisher.publishEvent(new TriggerFailedEvent(t.getId(), t.copyData(), state, e, retryAt)); - if (t.getData().getStatus() == TriggerStatus.SUCCESS) { - publisher.publishEvent(new TriggerSuccessEvent( - t.getId(), t.copyData(), state)); - log.debug("Setting {} to status={} {}", key, t.getData().getStatus(), - e == null ? "" : "error=" + e.getClass().getSimpleName()); + if (retryAt == null) { + triggerRepository.delete(t); } else { - publisher.publishEvent(new TriggerFailedEvent(t.getId(), t.copyData(), state, e)); - log.info("Setting {} to status={} {}", key, t.getData().getStatus(), - e == null ? "" : "error=" + e.getClass().getSimpleName()); + t.runAt(retryAt); } - }); + if (result.isEmpty()) { + log.error("Trigger with key={} not found and may be at a wrong state!", + key, e); + } return result; } - public Optional retryTrigger(TriggerKey id, OffsetDateTime retryAt) { - return triggerRepository // - .findByKey(id) // - .map(t -> t.runAt(retryAt)); - } - public Optional cancelTask(TriggerKey id) { return triggerRepository // .findByKey(id) // diff --git a/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/component/HandleTriggerExceptionComponent.java b/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/component/HandleTriggerExceptionComponent.java deleted file mode 100644 index ac2f87c16..000000000 --- a/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/component/HandleTriggerExceptionComponent.java +++ /dev/null @@ -1,55 +0,0 @@ -package org.sterl.spring.persistent_tasks.trigger.component; - -import java.time.OffsetDateTime; -import java.util.Optional; - -import org.springframework.lang.Nullable; -import org.springframework.stereotype.Component; -import org.springframework.transaction.annotation.Transactional; -import org.sterl.spring.persistent_tasks.trigger.component.RunTriggerComponent.TaskAndState; -import org.sterl.spring.persistent_tasks.trigger.model.TriggerEntity; - -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; - -@Component -@Transactional(timeout = 30) -@RequiredArgsConstructor -@Slf4j -public class HandleTriggerExceptionComponent { - - private final EditTriggerComponent editTrigger; - - Optional execute(TaskAndState taskAndState, - @Nullable Exception e) { - - var trigger = taskAndState.trigger; - var task = taskAndState.persistentTask; - var result = editTrigger.completeTaskWithStatus(trigger.getKey(), taskAndState.state, e); - - if (task != null - && task.retryStrategy().shouldRetry(trigger.getData().getExecutionCount(), e)) { - - final OffsetDateTime retryAt = task.retryStrategy().retryAt(trigger.getData().getExecutionCount(), e); - - result = editTrigger.retryTrigger(trigger.getKey(), retryAt); - if (result.isPresent()) { - var data = result.get().getData(); - log.warn("{} failed, retry will be done at={} status={}!", - trigger.getKey(), - data.getRunAt(), - data.getStatus(), - e); - } else { - log.error("Trigger with key={} not found and may be at a wrong state!", - trigger.getKey(), e); - } - } else { - log.error("{} failed, no more retries! {}", trigger.getKey(), - e == null ? "No exception given." : e.getMessage(), e); - - editTrigger.deleteTrigger(trigger); - } - return result; - } -} diff --git a/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/component/RunTriggerComponent.java b/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/component/RunTriggerComponent.java index 6feb0fa12..a2d080966 100644 --- a/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/component/RunTriggerComponent.java +++ b/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/component/RunTriggerComponent.java @@ -1,6 +1,7 @@ package org.sterl.spring.persistent_tasks.trigger.component; import java.io.Serializable; +import java.time.OffsetDateTime; import java.util.Optional; import org.springframework.context.ApplicationEventPublisher; @@ -24,7 +25,6 @@ public class RunTriggerComponent { private final TaskService taskService; private final EditTriggerComponent editTrigger; - private final HandleTriggerExceptionComponent handleTriggerException; private final ApplicationEventPublisher eventPublisher; private final StateSerializer serializer = new StateSerializer(); @@ -43,7 +43,7 @@ public Optional execute(TriggerEntity trigger) { try { return taskAndState.call(); } catch (Exception e) { - return handleTriggerException.execute(taskAndState, e); + return failTaskAndState(taskAndState, e); } } @@ -56,10 +56,33 @@ private TaskAndState getTastAndState(TriggerEntity trigger) { return new TaskAndState(task, trx, state, trigger); } catch (Exception e) { // this trigger is somehow crap, no retry and done. - handleTriggerException.execute(new TaskAndState(null, Optional.empty(), null, trigger), e); + failTaskAndState(new TaskAndState(null, Optional.empty(), null, trigger), e); return null; } } + + private Optional failTaskAndState(TaskAndState taskAndState, Exception e) { + + var trigger = taskAndState.trigger; + var task = taskAndState.persistentTask; + Optional result; + + if (task != null + && task.retryStrategy().shouldRetry(trigger.getData().getExecutionCount(), e)) { + + final OffsetDateTime retryAt = task.retryStrategy().retryAt(trigger.getData().getExecutionCount(), e); + + result = editTrigger.failTrigger(trigger.getKey(), taskAndState.state, e, retryAt); + + } else { + log.error("{} failed, no more retries! {}", trigger.getKey(), + e == null ? "No exception given." : e.getMessage(), e); + + result = editTrigger.failTrigger(trigger.getKey(), taskAndState.state, e, null); + } + return result; + } + @RequiredArgsConstructor class TaskAndState { final PersistentTask persistentTask; diff --git a/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/event/TriggerAddedEvent.java b/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/event/TriggerAddedEvent.java index 4edfd5f9d..2bcf9fc0b 100644 --- a/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/event/TriggerAddedEvent.java +++ b/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/event/TriggerAddedEvent.java @@ -12,4 +12,8 @@ */ public record TriggerAddedEvent(long id, TriggerData data, Serializable state) implements TriggerLifeCycleEvent { + @Override + public boolean isDone() { + return false; + } } diff --git a/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/event/TriggerCanceledEvent.java b/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/event/TriggerCanceledEvent.java index 36360709b..cc0e048e5 100644 --- a/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/event/TriggerCanceledEvent.java +++ b/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/event/TriggerCanceledEvent.java @@ -11,4 +11,9 @@ *

*/ public record TriggerCanceledEvent(long id, TriggerData data, Serializable state) implements TriggerLifeCycleEvent { + + @Override + public boolean isDone() { + return true; + } } diff --git a/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/event/TriggerFailedEvent.java b/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/event/TriggerFailedEvent.java index cc8d0ad34..758408d68 100644 --- a/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/event/TriggerFailedEvent.java +++ b/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/event/TriggerFailedEvent.java @@ -1,6 +1,7 @@ package org.sterl.spring.persistent_tasks.trigger.event; import java.io.Serializable; +import java.time.OffsetDateTime; import org.sterl.spring.persistent_tasks.shared.model.TriggerData; @@ -9,6 +10,12 @@ * Inside a transaction, it is save to join or listen for the AFTER_COMMIT *

*/ -public record TriggerFailedEvent(long id, TriggerData data, Serializable state, Exception exception) implements TriggerLifeCycleEvent { +public record TriggerFailedEvent(long id, + TriggerData data, Serializable state, + Exception exception, OffsetDateTime retryAt) implements TriggerLifeCycleEvent { + @Override + public boolean isDone() { + return retryAt == null; + } } diff --git a/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/event/TriggerLifeCycleEvent.java b/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/event/TriggerLifeCycleEvent.java index 56951c19e..c5c50dc05 100644 --- a/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/event/TriggerLifeCycleEvent.java +++ b/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/event/TriggerLifeCycleEvent.java @@ -20,4 +20,8 @@ default TriggerData getData() { TriggerData data(); @Nullable Serializable state(); + /** + * @return true if the trigger was completed, either with success, error or canceled. + */ + boolean isDone(); } diff --git a/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/event/TriggerRunningEvent.java b/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/event/TriggerRunningEvent.java index 3fd9377fa..3b7de39f3 100644 --- a/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/event/TriggerRunningEvent.java +++ b/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/event/TriggerRunningEvent.java @@ -15,4 +15,9 @@ public record TriggerRunningEvent(long id, TriggerData data, Serializable state, public boolean isRunningOn(String name) { return isRunning() && name != null && name.equals(runningOn); } + + @Override + public boolean isDone() { + return false; + } } diff --git a/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/event/TriggerSuccessEvent.java b/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/event/TriggerSuccessEvent.java index c33b35f77..fedb18b45 100644 --- a/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/event/TriggerSuccessEvent.java +++ b/core/src/main/java/org/sterl/spring/persistent_tasks/trigger/event/TriggerSuccessEvent.java @@ -11,4 +11,8 @@ */ public record TriggerSuccessEvent(long id, TriggerData data, Serializable state) implements TriggerLifeCycleEvent { + @Override + public boolean isDone() { + return true; + } } diff --git a/core/src/test/java/org/sterl/spring/persistent_tasks/history/repository/TriggerHistoryDetailRepositoryTest.java b/core/src/test/java/org/sterl/spring/persistent_tasks/history/repository/TriggerHistoryDetailRepositoryTest.java index c9d3e6f6b..99e65d18c 100644 --- a/core/src/test/java/org/sterl/spring/persistent_tasks/history/repository/TriggerHistoryDetailRepositoryTest.java +++ b/core/src/test/java/org/sterl/spring/persistent_tasks/history/repository/TriggerHistoryDetailRepositoryTest.java @@ -6,7 +6,6 @@ import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.domain.PageRequest; import org.sterl.spring.persistent_tasks.AbstractSpringTest; import org.sterl.spring.persistent_tasks.api.TriggerStatus; import org.sterl.spring.persistent_tasks.history.model.TriggerHistoryDetailEntity; @@ -18,9 +17,9 @@ class TriggerHistoryDetailRepositoryTest extends AbstractSpringTest { @Test void testGrouping() { // GIVEN - var history1 = newHistoryEntry(TriggerStatus.RUNNING, OffsetDateTime.now()); + var history1 = newHistoryEntry(TriggerStatus.FAILED, OffsetDateTime.now()); subject.save(history1); - var history2 = newHistoryEntry(TriggerStatus.RUNNING, OffsetDateTime.now()); + var history2 = newHistoryEntry(TriggerStatus.SUCCESS, OffsetDateTime.now()); history2.setInstanceId(history1.getInstanceId()); history2.getData().setKey(history1.getKey()); subject.save(history2); @@ -28,10 +27,10 @@ void testGrouping() { subject.save(newHistoryEntry(TriggerStatus.RUNNING, OffsetDateTime.now())); // WHEN - var result = subject.listHistoryOverview(PageRequest.of(0, 10)); + var result = subject.listTaskHistoryOverview(); // THEN - assertThat(result.getTotalElements()).isEqualTo(2L); + assertThat(result.size()).isEqualTo(2L); } private TriggerHistoryDetailEntity newHistoryEntry(TriggerStatus s, OffsetDateTime created) { @@ -39,6 +38,8 @@ private TriggerHistoryDetailEntity newHistoryEntry(TriggerStatus s, OffsetDateTi history.setId(null); history.setCreatedTime(created); history.getData().setStatus(s); + history.getData().setStart(OffsetDateTime.now()); + history.getData().setEnd(OffsetDateTime.now().plusSeconds(10)); return history; } diff --git a/core/src/test/java/org/sterl/spring/persistent_tasks/scheduler/SchedulerServiceTransactionTest.java b/core/src/test/java/org/sterl/spring/persistent_tasks/scheduler/SchedulerServiceTransactionTest.java index d3980aa5f..104f01d9b 100644 --- a/core/src/test/java/org/sterl/spring/persistent_tasks/scheduler/SchedulerServiceTransactionTest.java +++ b/core/src/test/java/org/sterl/spring/persistent_tasks/scheduler/SchedulerServiceTransactionTest.java @@ -209,8 +209,6 @@ void testRollbackAndRetry() throws Exception { awaitRunningTasks(); // THEN - hibernateAsserts.assertInsertCount(5); - // AND the last status before we are back to running should be FAILED var history = historyService.findAllDetailsForKey(key).getContent(); assertThat(history.get(0).getData().getStatus()) .isEqualTo(TriggerStatus.FAILED); diff --git a/core/src/test/java/org/sterl/spring/persistent_tasks/trigger/TriggerServiceTest.java b/core/src/test/java/org/sterl/spring/persistent_tasks/trigger/TriggerServiceTest.java index a8dc4207a..f130430ca 100644 --- a/core/src/test/java/org/sterl/spring/persistent_tasks/trigger/TriggerServiceTest.java +++ b/core/src/test/java/org/sterl/spring/persistent_tasks/trigger/TriggerServiceTest.java @@ -19,6 +19,7 @@ import org.sterl.spring.persistent_tasks.api.TaskId.TaskTriggerBuilder; import org.sterl.spring.persistent_tasks.api.TriggerKey; import org.sterl.spring.persistent_tasks.api.TriggerStatus; +import org.sterl.spring.persistent_tasks.history.repository.TriggerHistoryLastStateRepository; import org.sterl.spring.persistent_tasks.task.repository.TaskRepository; import org.sterl.spring.persistent_tasks.trigger.model.TriggerEntity; import org.sterl.spring.persistent_tasks.trigger.repository.TriggerRepository; @@ -31,6 +32,8 @@ class TriggerServiceTest extends AbstractSpringTest { private TriggerRepository triggerRepository; @Autowired private TaskRepository taskRepository; + @Autowired + private TriggerHistoryLastStateRepository triggerHistoryLastStateRepository; // ensure persistentTask in the spring context @Autowired @@ -58,8 +61,10 @@ void testAddTrigger() throws Exception { // THEN hibernateAsserts.assertTrxCount(1); - // one for the trigger and two for the history - hibernateAsserts.assertInsertCount(3); + // one for the trigger and just one for the history + hibernateAsserts.assertInsertCount(2); + // AND + assertThat(triggerHistoryLastStateRepository.count()).isZero(); // AND final var e = subject.get(triggerId); assertThat(e).isPresent(); From e7ca7535cc8ccf1441947c96b349a89ccc08d115 Mon Sep 17 00:00:00 2001 From: Paul Sterl Date: Sat, 11 Jan 2025 15:54:52 +0100 Subject: [PATCH 5/9] adjusted UI that it displays running on --- ui/src/history/history.page.tsx | 10 +- ui/src/history/view/trigger-history.view.tsx | 7 +- ui/src/server-api.d.ts | 21 ++- ui/src/shared/date.util.ts | 24 +++- ui/src/shared/view/trigger-list-item.view.tsx | 130 +++++++++--------- ui/src/trigger/triggers.page.tsx | 18 +-- 6 files changed, 119 insertions(+), 91 deletions(-) diff --git a/ui/src/history/history.page.tsx b/ui/src/history/history.page.tsx index 7f67aadce..69402a40b 100644 --- a/ui/src/history/history.page.tsx +++ b/ui/src/history/history.page.tsx @@ -7,7 +7,7 @@ import ReloadButton from "@src/shared/view/reload-button.view"; import TriggerItemView from "@src/shared/view/trigger-list-item.view"; import TaskSelect from "@src/task/view/task-select.view"; import { useState } from "react"; -import { Col, Form, Row, Stack } from "react-bootstrap"; +import { Accordion, Col, Form, Row, Stack } from "react-bootstrap"; const HistoryPage = () => { const [page, setPage] = useState(0); @@ -63,9 +63,11 @@ const HistoryPage = () => { /> - {triggers.data?.content.map((t) => ( - - ))} + + {triggers.data?.content.map((t) => ( + + ))} + ); diff --git a/ui/src/history/view/trigger-history.view.tsx b/ui/src/history/view/trigger-history.view.tsx index d1348c8fd..76e7e2b32 100644 --- a/ui/src/history/view/trigger-history.view.tsx +++ b/ui/src/history/view/trigger-history.view.tsx @@ -19,14 +19,11 @@ const TriggerHistoryListView = ({ triggers }: { triggers?: Trigger[] }) => { - - {" at " + formatDateTime(t.createdTime)} - - {formatDateTime(t.start)} - {formatDateTime(t.end)}{" "} + {formatDateTime(t.createdTime)} - {t.executionCount} + execution: {t.executionCount} {formatMs(t.runningDurationInMs)} diff --git a/ui/src/server-api.d.ts b/ui/src/server-api.d.ts index e04a567b7..20c971bc4 100644 --- a/ui/src/server-api.d.ts +++ b/ui/src/server-api.d.ts @@ -23,17 +23,6 @@ export interface AddTriggerRequest { priority: number; } -export interface HistoryOverview { - instanceId: number; - taskName: string; - entryCount: number; - start: string; - end: string; - createdTime: string; - executionCount: number; - runningDurationInMs: number; -} - export interface PersistentTask { transactional: boolean; } @@ -53,6 +42,16 @@ export interface MultiplicativeRetryStrategy extends RetryStrategy { export interface SpringBeanTask extends PersistentTask { } +export interface TaskHistoryOverview { + taskName: string; + executionCount: number; + firstRun: string; + lastRun: string; + maxDurationMs: number; + minDurationMs: number; + avgDurationMs: number; +} + export interface TaskId extends Serializable { name: string; } diff --git a/ui/src/shared/date.util.ts b/ui/src/shared/date.util.ts index 3d6addfed..86ee73c0f 100644 --- a/ui/src/shared/date.util.ts +++ b/ui/src/shared/date.util.ts @@ -1,9 +1,14 @@ -export function formatDateTime(inputDate?: string | Date): string { +export function formatShortDateTime(inputDate?: string | Date): string { if (!inputDate) return ""; const date = inputDate instanceof Date ? inputDate : new Date(inputDate); const now = new Date(); const isToday = date.toDateString() === now.toDateString(); + + const secondsPast = Math.floor(now.getTime() - date.getTime() / 1000); + if (secondsPast > 0 && secondsPast < 6) return "just now"; + if (secondsPast > 0 && secondsPast < 30) return secondsPast + "s"; + const options = { hour: "2-digit", minute: "2-digit", @@ -22,6 +27,23 @@ export function formatDateTime(inputDate?: string | Date): string { ).format(date); } +export function formatDateTime(inputDate?: string | Date): string { + if (!inputDate) return ""; + const date = inputDate instanceof Date ? inputDate : new Date(inputDate); + return new Intl.DateTimeFormat( + navigator.language || "en-US", + { + day: "2-digit", + month: "2-digit", + year: "2-digit", + hour: "2-digit", + minute: "2-digit", + second: "2-digit", + hour12: false, // Use 24-hour format + } + ).format(date); +} + export function formatMs(ms?: number) { if (ms === 0) return "0ms"; if (!ms) return ""; diff --git a/ui/src/shared/view/trigger-list-item.view.tsx b/ui/src/shared/view/trigger-list-item.view.tsx index 2416278d6..c034dd8da 100644 --- a/ui/src/shared/view/trigger-list-item.view.tsx +++ b/ui/src/shared/view/trigger-list-item.view.tsx @@ -4,7 +4,7 @@ import LabeledText from "@src/shared/view/labled-text.view"; import JsonView from "@uiw/react-json-view"; import { Accordion, Button, Col, Container, Row } from "react-bootstrap"; import TriggerStatusView from "../../trigger/views/trigger-staus.view"; -import { formatDateTime, formatMs } from "../date.util"; +import { formatMs, formatShortDateTime } from "../date.util"; import { useServerObject } from "../http-request"; import HttpErrorView from "./http-error.view"; import StackTraceView from "./stacktrace-view"; @@ -28,57 +28,56 @@ const TriggerItemView = ({ trigger, afterTriggerChanged }: TriggerProps) => { ); return ( - { if (!triggerHistory.data) triggerHistory.doGet(); }} > - - - - - - - - - {trigger.status === "WAITING" && afterTriggerChanged ? ( -
- - -
- ) : undefined} - + + -
-
-
+ + + + + {trigger.status === "WAITING" && afterTriggerChanged ? ( +
+ + +
+ ) : undefined} + +
+ ); }; @@ -95,10 +94,23 @@ const TriggerCompactView = ({ trigger }: { trigger: Trigger }) => ( {" " + trigger.key.taskName} - + - - + + {trigger.runningOn ? ( + + ) : ( + + )} ); @@ -113,19 +125,13 @@ const TriggerDetailsView = ({ return ( <> - - - - + - - + + - + @@ -133,19 +139,19 @@ const TriggerDetailsView = ({ diff --git a/ui/src/trigger/triggers.page.tsx b/ui/src/trigger/triggers.page.tsx index e81dcca57..42343937a 100644 --- a/ui/src/trigger/triggers.page.tsx +++ b/ui/src/trigger/triggers.page.tsx @@ -6,7 +6,7 @@ import PageView from "@src/shared/view/page.view"; import ReloadButton from "@src/shared/view/reload-button.view"; import TaskSelect from "@src/task/view/task-select.view"; import { useState } from "react"; -import { Col, Form, Row, Stack } from "react-bootstrap"; +import { Accordion, Col, Form, Row, Stack } from "react-bootstrap"; import TriggerItemView from "../shared/view/trigger-list-item.view"; const TriggersPage = () => { @@ -56,13 +56,15 @@ const TriggersPage = () => { /> - {triggers.data?.content.map((t) => ( - - ))} + + {triggers.data?.content.map((t) => ( + + ))} + ); }; From 2629e2ffe831eca3541d54e55faab73329b5111c Mon Sep 17 00:00:00 2001 From: Paul Sterl Date: Sat, 11 Jan 2025 18:46:27 +0100 Subject: [PATCH 6/9] showing trigger stats --- .../api/TaskHistoryOverview.java | 14 ---- .../api/TaskStatusHistoryOverview.java | 16 ++++ .../history/HistoryService.java | 6 +- .../history/api/TriggerHistoryResource.java | 8 +- .../TriggerHistoryDetailRepository.java | 18 ----- .../TriggerHistoryLastStateRepository.java | 21 ++++++ .../TriggerHistoryDetailRepositoryTest.java | 46 ------------ ...TriggerHistoryLastStateRepositoryTest.java | 75 +++++++++++++++++++ ui/src/scheduler/scheduler.page.tsx | 66 ++++++++++++++-- ui/src/server-api.d.ts | 18 +++-- ui/src/shared/date.util.ts | 5 +- ui/src/shared/view/trigger-list-item.view.tsx | 4 +- ui/src/task/view/staus.view.tsx | 21 ++++++ 13 files changed, 215 insertions(+), 103 deletions(-) delete mode 100644 core/src/main/java/org/sterl/spring/persistent_tasks/api/TaskHistoryOverview.java create mode 100644 core/src/main/java/org/sterl/spring/persistent_tasks/api/TaskStatusHistoryOverview.java delete mode 100644 core/src/test/java/org/sterl/spring/persistent_tasks/history/repository/TriggerHistoryDetailRepositoryTest.java create mode 100644 core/src/test/java/org/sterl/spring/persistent_tasks/history/repository/TriggerHistoryLastStateRepositoryTest.java create mode 100644 ui/src/task/view/staus.view.tsx diff --git a/core/src/main/java/org/sterl/spring/persistent_tasks/api/TaskHistoryOverview.java b/core/src/main/java/org/sterl/spring/persistent_tasks/api/TaskHistoryOverview.java deleted file mode 100644 index 7d0e15544..000000000 --- a/core/src/main/java/org/sterl/spring/persistent_tasks/api/TaskHistoryOverview.java +++ /dev/null @@ -1,14 +0,0 @@ -package org.sterl.spring.persistent_tasks.api; - -import java.time.OffsetDateTime; - -public record TaskHistoryOverview( - String taskName, - long executionCount, - OffsetDateTime firstRun, - OffsetDateTime lastRun, - double maxDurationMs, - double minDurationMs, - double avgDurationMs - ) { -} diff --git a/core/src/main/java/org/sterl/spring/persistent_tasks/api/TaskStatusHistoryOverview.java b/core/src/main/java/org/sterl/spring/persistent_tasks/api/TaskStatusHistoryOverview.java new file mode 100644 index 000000000..5619d4a50 --- /dev/null +++ b/core/src/main/java/org/sterl/spring/persistent_tasks/api/TaskStatusHistoryOverview.java @@ -0,0 +1,16 @@ +package org.sterl.spring.persistent_tasks.api; + +import java.time.OffsetDateTime; + +public record TaskStatusHistoryOverview( + String taskName, + TriggerStatus status, + Long executionCount, + OffsetDateTime firstRun, + OffsetDateTime lastRun, + Number maxDurationMs, + Number minDurationMs, + Number avgDurationMs, + Number avgExecutionCount + ) { +} \ No newline at end of file diff --git a/core/src/main/java/org/sterl/spring/persistent_tasks/history/HistoryService.java b/core/src/main/java/org/sterl/spring/persistent_tasks/history/HistoryService.java index d53fa0c09..92012085a 100644 --- a/core/src/main/java/org/sterl/spring/persistent_tasks/history/HistoryService.java +++ b/core/src/main/java/org/sterl/spring/persistent_tasks/history/HistoryService.java @@ -10,7 +10,7 @@ import org.springframework.data.domain.Sort; import org.springframework.data.domain.Sort.Direction; import org.springframework.lang.Nullable; -import org.sterl.spring.persistent_tasks.api.TaskHistoryOverview; +import org.sterl.spring.persistent_tasks.api.TaskStatusHistoryOverview; import org.sterl.spring.persistent_tasks.api.TriggerKey; import org.sterl.spring.persistent_tasks.api.TriggerStatus; import org.sterl.spring.persistent_tasks.history.model.TriggerHistoryDetailEntity; @@ -118,7 +118,7 @@ private Pageable applyDefaultSortIfNeeded(Pageable page) { return page; } - public List taskHistory() { - return triggerHistoryDetailRepository.listTaskHistoryOverview(); + public List taskStatusHistory() { + return triggerHistoryLastStateRepository.listTriggerStatus(); } } diff --git a/core/src/main/java/org/sterl/spring/persistent_tasks/history/api/TriggerHistoryResource.java b/core/src/main/java/org/sterl/spring/persistent_tasks/history/api/TriggerHistoryResource.java index 01cf89113..eb2ec1f18 100644 --- a/core/src/main/java/org/sterl/spring/persistent_tasks/history/api/TriggerHistoryResource.java +++ b/core/src/main/java/org/sterl/spring/persistent_tasks/history/api/TriggerHistoryResource.java @@ -11,7 +11,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; -import org.sterl.spring.persistent_tasks.api.TaskHistoryOverview; +import org.sterl.spring.persistent_tasks.api.TaskStatusHistoryOverview; import org.sterl.spring.persistent_tasks.api.Trigger; import org.sterl.spring.persistent_tasks.api.TriggerKey; import org.sterl.spring.persistent_tasks.history.HistoryService; @@ -32,9 +32,9 @@ public List listInstances(@PathVariable("instanceId") long instanceId) return FromTriggerStateDetailEntity.INSTANCE.convert( // historyService.findAllDetailsForInstance(instanceId)); } - @GetMapping("task-history") - public List taskHistory() { - return historyService.taskHistory(); + @GetMapping("task-status-history") + public List taskStatusHistory() { + return historyService.taskStatusHistory(); } @GetMapping("history") diff --git a/core/src/main/java/org/sterl/spring/persistent_tasks/history/repository/TriggerHistoryDetailRepository.java b/core/src/main/java/org/sterl/spring/persistent_tasks/history/repository/TriggerHistoryDetailRepository.java index d5dda2af7..0f2f42ab7 100644 --- a/core/src/main/java/org/sterl/spring/persistent_tasks/history/repository/TriggerHistoryDetailRepository.java +++ b/core/src/main/java/org/sterl/spring/persistent_tasks/history/repository/TriggerHistoryDetailRepository.java @@ -4,28 +4,10 @@ import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param; -import org.sterl.spring.persistent_tasks.api.TaskHistoryOverview; import org.sterl.spring.persistent_tasks.history.model.TriggerHistoryDetailEntity; public interface TriggerHistoryDetailRepository extends HistoryTriggerRepository { - @Query(""" - SELECT new org.sterl.spring.persistent_tasks.api.TaskHistoryOverview( - e.data.key.taskName, - count(1) as entryCount, - MIN(e.data.runAt) as firstRun, - MAX(e.data.runAt) as lastRun, - MAX(e.data.runningDurationInMs) as maxDuration, - MIN(e.data.runningDurationInMs) as minDuration, - AVG(e.data.runningDurationInMs) as avgDuration - ) - FROM #{#entityName} e - WHERE e.data.end IS NOT NULL - GROUP BY e.data.key.taskName - ORDER BY e.data.key.taskName ASC - """) - List listTaskHistoryOverview(); - @Query(""" SELECT e FROM #{#entityName} e diff --git a/core/src/main/java/org/sterl/spring/persistent_tasks/history/repository/TriggerHistoryLastStateRepository.java b/core/src/main/java/org/sterl/spring/persistent_tasks/history/repository/TriggerHistoryLastStateRepository.java index 5bc208d9c..0f0afcf25 100644 --- a/core/src/main/java/org/sterl/spring/persistent_tasks/history/repository/TriggerHistoryLastStateRepository.java +++ b/core/src/main/java/org/sterl/spring/persistent_tasks/history/repository/TriggerHistoryLastStateRepository.java @@ -1,7 +1,28 @@ package org.sterl.spring.persistent_tasks.history.repository; +import java.util.List; + +import org.springframework.data.jpa.repository.Query; +import org.sterl.spring.persistent_tasks.api.TaskStatusHistoryOverview; import org.sterl.spring.persistent_tasks.history.model.TriggerHistoryLastStateEntity; public interface TriggerHistoryLastStateRepository extends HistoryTriggerRepository { + @Query(""" + SELECT new org.sterl.spring.persistent_tasks.api.TaskStatusHistoryOverview( + e.data.key.taskName, + e.data.status, + count(1), + MIN(e.data.runAt) as firstRun, + MAX(e.data.runAt) as lastRun, + MAX(e.data.runningDurationInMs) as maxDuration, + MIN(e.data.runningDurationInMs) as minDuration, + AVG(e.data.runningDurationInMs) as avgDuration, + AVG(e.data.executionCount) as avgExecutionCount + ) + FROM #{#entityName} e + GROUP BY e.data.key.taskName, e.data.status + ORDER BY e.data.key.taskName ASC, e.data.status ASC + """) + List listTriggerStatus(); } diff --git a/core/src/test/java/org/sterl/spring/persistent_tasks/history/repository/TriggerHistoryDetailRepositoryTest.java b/core/src/test/java/org/sterl/spring/persistent_tasks/history/repository/TriggerHistoryDetailRepositoryTest.java deleted file mode 100644 index 99e65d18c..000000000 --- a/core/src/test/java/org/sterl/spring/persistent_tasks/history/repository/TriggerHistoryDetailRepositoryTest.java +++ /dev/null @@ -1,46 +0,0 @@ -package org.sterl.spring.persistent_tasks.history.repository; - -import static org.assertj.core.api.Assertions.assertThat; - -import java.time.OffsetDateTime; - -import org.junit.jupiter.api.Test; -import org.springframework.beans.factory.annotation.Autowired; -import org.sterl.spring.persistent_tasks.AbstractSpringTest; -import org.sterl.spring.persistent_tasks.api.TriggerStatus; -import org.sterl.spring.persistent_tasks.history.model.TriggerHistoryDetailEntity; - -class TriggerHistoryDetailRepositoryTest extends AbstractSpringTest { - - @Autowired private TriggerHistoryDetailRepository subject; - - @Test - void testGrouping() { - // GIVEN - var history1 = newHistoryEntry(TriggerStatus.FAILED, OffsetDateTime.now()); - subject.save(history1); - var history2 = newHistoryEntry(TriggerStatus.SUCCESS, OffsetDateTime.now()); - history2.setInstanceId(history1.getInstanceId()); - history2.getData().setKey(history1.getKey()); - subject.save(history2); - // AND - subject.save(newHistoryEntry(TriggerStatus.RUNNING, OffsetDateTime.now())); - - // WHEN - var result = subject.listTaskHistoryOverview(); - - // THEN - assertThat(result.size()).isEqualTo(2L); - } - - private TriggerHistoryDetailEntity newHistoryEntry(TriggerStatus s, OffsetDateTime created) { - var history = pm.manufacturePojo(TriggerHistoryDetailEntity.class); - history.setId(null); - history.setCreatedTime(created); - history.getData().setStatus(s); - history.getData().setStart(OffsetDateTime.now()); - history.getData().setEnd(OffsetDateTime.now().plusSeconds(10)); - return history; - } - -} diff --git a/core/src/test/java/org/sterl/spring/persistent_tasks/history/repository/TriggerHistoryLastStateRepositoryTest.java b/core/src/test/java/org/sterl/spring/persistent_tasks/history/repository/TriggerHistoryLastStateRepositoryTest.java new file mode 100644 index 000000000..d52dd0c30 --- /dev/null +++ b/core/src/test/java/org/sterl/spring/persistent_tasks/history/repository/TriggerHistoryLastStateRepositoryTest.java @@ -0,0 +1,75 @@ +package org.sterl.spring.persistent_tasks.history.repository; + +import static org.assertj.core.api.Assertions.assertThat; + +import java.time.OffsetDateTime; +import java.util.concurrent.atomic.AtomicLong; + +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.sterl.spring.persistent_tasks.AbstractSpringTest; +import org.sterl.spring.persistent_tasks.api.TriggerKey; +import org.sterl.spring.persistent_tasks.api.TriggerStatus; +import org.sterl.spring.persistent_tasks.history.model.TriggerHistoryLastStateEntity; +import org.sterl.spring.persistent_tasks.shared.model.TriggerData; + +class TriggerHistoryLastStateRepositoryTest extends AbstractSpringTest { + + final AtomicLong idGenerator = new AtomicLong(0); + @Autowired + private TriggerHistoryLastStateRepository subject; + + @Test + void testListTriggerStatus() { + // GIVEN + subject.deleteAllInBatch(); + createStatus(new TriggerKey("1", "task1"), TriggerStatus.SUCCESS); + createStatus(new TriggerKey("2", "task1"), TriggerStatus.SUCCESS); + createStatus(new TriggerKey("3", "task1"), TriggerStatus.FAILED); + createStatus(new TriggerKey("4", "task2"), TriggerStatus.SUCCESS); + createStatus(new TriggerKey("5", "task2"), TriggerStatus.CANCELED); + assertThat(subject.count()).isEqualTo(5); + + // THEN + var result = subject.listTriggerStatus(); + + // WHEN + assertThat(result.size()).isEqualTo(4); + // AND + var i = 0; + assertThat(result.get(i).taskName()).isEqualTo("task1"); + assertThat(result.get(i).status()).isEqualTo(TriggerStatus.FAILED); + assertThat(result.get(i).executionCount()).isEqualTo(1L); + // AND + i = 1; + assertThat(result.get(i).taskName()).isEqualTo("task1"); + assertThat(result.get(i).status()).isEqualTo(TriggerStatus.SUCCESS); + assertThat(result.get(i).executionCount()).isEqualTo(2L); + // AND + i = 2; + assertThat(result.get(i).taskName()).isEqualTo("task2"); + assertThat(result.get(i).status()).isEqualTo(TriggerStatus.CANCELED); + assertThat(result.get(i).executionCount()).isEqualTo(1L); + } + + private TriggerHistoryLastStateEntity createStatus(TriggerKey key, TriggerStatus status) { + final var now = OffsetDateTime.now(); + final var isCancel = status == TriggerStatus.CANCELED; + + TriggerHistoryLastStateEntity result = new TriggerHistoryLastStateEntity(); + result.setId(idGenerator.incrementAndGet()); + result.setData(TriggerData + .builder() + .start(isCancel ? null : now.minusMinutes(1)) + .end(isCancel ? null : now) + .createdTime(now) + .key(key) + .status(status) + .runningDurationInMs(isCancel ? null : 600L) + .build() + ); + + return subject.save(result); + } + +} diff --git a/ui/src/scheduler/scheduler.page.tsx b/ui/src/scheduler/scheduler.page.tsx index d91c1f46a..e4a89eb18 100644 --- a/ui/src/scheduler/scheduler.page.tsx +++ b/ui/src/scheduler/scheduler.page.tsx @@ -1,18 +1,25 @@ import SchedulerStatusView from "@src/scheduler/views/scheduler.view"; -import HttpErrorView from "@src/shared/view/http-error.view"; +import { TaskStatusHistoryOverview } from "@src/server-api"; +import { formatMs } from "@src/shared/date.util"; import { useServerObject } from "@src/shared/http-request"; import useAutoRefresh from "@src/shared/use-auto-refresh"; +import HttpErrorView from "@src/shared/view/http-error.view"; +import StatusView from "@src/task/view/staus.view"; import { useEffect } from "react"; -import { Col, Row } from "react-bootstrap"; +import { Card, Col, ListGroup, Row } from "react-bootstrap"; const SchedulersPage = () => { const schedulers = useServerObject( "/spring-tasks-api/schedulers" ); const tasks = useServerObject("/spring-tasks-api/tasks"); + const taskHistory = useServerObject( + "/spring-tasks-api/task-status-history" + ); - useEffect(tasks.doGet, []); - useAutoRefresh(10000, schedulers.doGet, []); + useEffect(() => tasks.doGet(), []); + useAutoRefresh(10000, () => schedulers.doGet(), []); + useAutoRefresh(10000, () => taskHistory.doGet(), []); return ( <> @@ -27,9 +34,58 @@ const SchedulersPage = () => { ))} + + {tasks.data?.map((i) => ( + + + + ))} ); }; - export default SchedulersPage; + +const TaskStatusHistoryOverviewView = ({ + name, + status, +}: { + name: string; + status: TaskStatusHistoryOverview[]; +}) => ( + + + {name} + + + {status + .filter((s) => s.taskName == name) + .map((s) => ( + + + + + + avg: {formatMs(s.avgDurationMs)} + max: {formatMs(s.maxDurationMs)} + + avg retry:{" "} + {Math.round( + Math.max(0, s.avgExecutionCount - 1) * 100 + ) / 100} + + + + ))} + + +); diff --git a/ui/src/server-api.d.ts b/ui/src/server-api.d.ts index 20c971bc4..5404fa63f 100644 --- a/ui/src/server-api.d.ts +++ b/ui/src/server-api.d.ts @@ -42,21 +42,23 @@ export interface MultiplicativeRetryStrategy extends RetryStrategy { export interface SpringBeanTask extends PersistentTask { } -export interface TaskHistoryOverview { +export interface TaskId extends Serializable { + name: string; +} + +export interface TaskTriggerBuilder { +} + +export interface TaskStatusHistoryOverview { taskName: string; + status: TriggerStatus; executionCount: number; firstRun: string; lastRun: string; maxDurationMs: number; minDurationMs: number; avgDurationMs: number; -} - -export interface TaskId extends Serializable { - name: string; -} - -export interface TaskTriggerBuilder { + avgExecutionCount: number; } export interface TransactionalTask extends PersistentTask { diff --git a/ui/src/shared/date.util.ts b/ui/src/shared/date.util.ts index 86ee73c0f..db80d9cda 100644 --- a/ui/src/shared/date.util.ts +++ b/ui/src/shared/date.util.ts @@ -45,9 +45,10 @@ export function formatDateTime(inputDate?: string | Date): string { } export function formatMs(ms?: number) { + if (ms === undefined || ms === null) return "-"; if (ms === 0) return "0ms"; - if (!ms) return ""; - if (ms < 9999) return ms + "ms"; + + if (ms < 9999) return Math.floor(ms) + "ms"; const inS = Math.floor(ms / 1000); if (ms < 99999) { diff --git a/ui/src/shared/view/trigger-list-item.view.tsx b/ui/src/shared/view/trigger-list-item.view.tsx index c034dd8da..30b9c6308 100644 --- a/ui/src/shared/view/trigger-list-item.view.tsx +++ b/ui/src/shared/view/trigger-list-item.view.tsx @@ -30,9 +30,7 @@ const TriggerItemView = ({ trigger, afterTriggerChanged }: TriggerProps) => { return ( { - if (!triggerHistory.data) triggerHistory.doGet(); - }} + onClick={() => triggerHistory.doGet()} > diff --git a/ui/src/task/view/staus.view.tsx b/ui/src/task/view/staus.view.tsx new file mode 100644 index 000000000..c2134d017 --- /dev/null +++ b/ui/src/task/view/staus.view.tsx @@ -0,0 +1,21 @@ +import { TriggerStatus } from "@src/server-api"; +import { Badge } from "react-bootstrap"; + +interface Props { + status: TriggerStatus; + suffix?: string; +} +const StatusView = ({ status, suffix }: Props) => { + if (status === "SUCCESS") + return Success{suffix ?? ""}; + if (status === "FAILED") + return Failed{suffix ?? ""}; + if (status === "RUNNING") return Running{suffix ?? ""}; + if (status === "WAITING") + return Wating{suffix ?? ""}; + if (status === "CANCELED") + return Canceled{suffix ?? ""}; + return {status}; +}; + +export default StatusView; From e7f51540b1e4f0c072adee10e949db63769988a5 Mon Sep 17 00:00:00 2001 From: Paul Sterl Date: Sat, 11 Jan 2025 18:46:39 +0100 Subject: [PATCH 7/9] failing task may succeed --- .../example_app/vehicle/task/BuildVehicleTask.java | 10 ++++++---- .../vehicle/task/FailingBuildVehicleTask.java | 13 ++++++++----- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/example/src/main/java/org/sterl/spring/example_app/vehicle/task/BuildVehicleTask.java b/example/src/main/java/org/sterl/spring/example_app/vehicle/task/BuildVehicleTask.java index 6a263979a..adc3d998f 100644 --- a/example/src/main/java/org/sterl/spring/example_app/vehicle/task/BuildVehicleTask.java +++ b/example/src/main/java/org/sterl/spring/example_app/vehicle/task/BuildVehicleTask.java @@ -1,11 +1,13 @@ package org.sterl.spring.example_app.vehicle.task; +import java.util.Random; + import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; import org.sterl.spring.example_app.vehicle.model.Vehicle; import org.sterl.spring.example_app.vehicle.repository.VehicleRepository; -import org.sterl.spring.persistent_tasks.api.SpringBeanTask; import org.sterl.spring.persistent_tasks.api.TaskId; +import org.sterl.spring.persistent_tasks.api.TransactionalTask; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -13,11 +15,11 @@ @Component(BuildVehicleTask.NAME) @RequiredArgsConstructor @Slf4j -public class BuildVehicleTask implements SpringBeanTask { +public class BuildVehicleTask implements TransactionalTask { static final String NAME = "buildVehicleTask"; public static final TaskId ID = new TaskId<>(NAME); - + private final Random random = new Random(); private final VehicleRepository vehicleRepository; @Transactional(timeout = 5) @@ -26,7 +28,7 @@ public void accept(Vehicle vehicle) { vehicleRepository.save(vehicle); log.info("Create vehicle ={}", vehicle); try { - Thread.sleep(1500); + Thread.sleep(random.nextInt(3501)); } catch (InterruptedException e) { Thread.interrupted(); } diff --git a/example/src/main/java/org/sterl/spring/example_app/vehicle/task/FailingBuildVehicleTask.java b/example/src/main/java/org/sterl/spring/example_app/vehicle/task/FailingBuildVehicleTask.java index 45c89aba3..f0c1eac8c 100644 --- a/example/src/main/java/org/sterl/spring/example_app/vehicle/task/FailingBuildVehicleTask.java +++ b/example/src/main/java/org/sterl/spring/example_app/vehicle/task/FailingBuildVehicleTask.java @@ -1,10 +1,12 @@ package org.sterl.spring.example_app.vehicle.task; +import java.util.Random; + import org.springframework.stereotype.Component; import org.sterl.spring.example_app.vehicle.model.Vehicle; import org.sterl.spring.example_app.vehicle.repository.VehicleRepository; -import org.sterl.spring.persistent_tasks.api.SpringBeanTask; import org.sterl.spring.persistent_tasks.api.TaskId; +import org.sterl.spring.persistent_tasks.api.TransactionalTask; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -12,11 +14,11 @@ @Component(FailingBuildVehicleTask.NAME) @RequiredArgsConstructor @Slf4j -public class FailingBuildVehicleTask implements SpringBeanTask { +public class FailingBuildVehicleTask implements TransactionalTask { static final String NAME = "failingBuildVehicleTask"; public static final TaskId ID = new TaskId<>(NAME); - + private final Random random = new Random(); private final VehicleRepository vehicleRepository; @Override @@ -24,10 +26,11 @@ public void accept(Vehicle vehicle) { vehicleRepository.save(vehicle); log.info("Create vehicle with {} - which will fail", vehicle); try { - Thread.sleep(3500); + Thread.sleep(random.nextInt(3501)); } catch (InterruptedException e) { Thread.interrupted(); } - throw new RuntimeException("This persistentTask will always fail!"); + if (random.nextInt(11) % 2 == 0) + throw new RuntimeException("This persistentTask will always fail!"); } } From 8b2efbfc2570ee17c0d01a584f03b44dd57a5430 Mon Sep 17 00:00:00 2001 From: Paul Sterl Date: Sat, 11 Jan 2025 18:49:35 +0100 Subject: [PATCH 8/9] update changelog --- CHANGELOG.md | 34 +++++++++++++++--------------- RUN_AND_BUILD.md | 10 ++++++--- screenshots/history-screen.png | Bin 393095 -> 256731 bytes screenshots/schedulers-screen.png | Bin 93422 -> 173213 bytes 4 files changed, 24 insertions(+), 20 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bf2a0b2fc..60ca2009a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,47 +2,47 @@ ## v1.5.0 -- Adjusted transaction handling for trigger life cycle events -- Base event entry is only written for done/finished trigger +- Adjusted transaction handling for trigger life cycle events +- Base event entry is only written for done/finished trigger +- Base statistics added for a task ## v1.4.6 - (2025-01-08) -- Trigger history with more details - not waiting for the transaction +- Trigger history with more details - not waiting for the transaction ## v1.4.5 - (2025-01-08) -- Adjusted path matching to support sub routes for an SPA web app +- Adjusted path matching to support sub routes for an SPA web app ## v1.4.4 - (2025-01-08) -- Fixed UI routing -- added support for thymeleaf - adding index.html to template folder +- Fixed UI routing +- added support for thymeleaf - adding index.html to template folder ## v1.4.3 - (2025-01-08) -- Scheduler service leaves current transaction before executing task +- Scheduler service leaves current transaction before executing task ## v1.4.2 - (2025-01-06) -- Fixed count by TaskId -- added search by ID to the UI -- added search by task to history +- Fixed count by TaskId +- added search by ID to the UI +- added search by task to history ## v1.4.1 - (2025-01-06) -- Added state to the TriggerLifeCycleEvent -- @Transactional annotation is taken from the method first +- Added state to the TriggerLifeCycleEvent +- @Transactional annotation is taken from the method first ## v1.4.0 - (2025-01-05) -- @Transactional Annotation support -- PersistentTask instead of Task or SpringBeanTask - +- @Transactional Annotation support +- PersistentTask instead of Task or SpringBeanTask ## v1.3.1 - (2025-01-02) -- Bugfixes -- Sprign Transaction Template support +- Bugfixes +- Sprign Transaction Template support ## v1.3.0 - (2025-01-01) diff --git a/RUN_AND_BUILD.md b/RUN_AND_BUILD.md index 3d589d795..3a188efa8 100644 --- a/RUN_AND_BUILD.md +++ b/RUN_AND_BUILD.md @@ -1,16 +1,20 @@ mvn versions:display-dependency-updates -mvn versions:set -DnewVersion=1.4.6 -DgenerateBackupPoms=false -git tag -a v1.4.6 -m "v1.4.6 release" -mvn versions:set -DnewVersion=1.4.7-SNAPSHOT -DgenerateBackupPoms=false +mvn versions:set -DnewVersion=1.5.0 -DgenerateBackupPoms=false +git tag -a v1.5.0 -m "v1.5.0 release" +mvn versions:set -DnewVersion=1.5.1-SNAPSHOT -DgenerateBackupPoms=false ## postgres + docker run --name pg-container -e POSTGRES_USER=sa -e POSTGRES_PASSWORD=veryStrong123 -p 5432:5432 -d postgres ## azure-sql-edge + docker run --cap-add SYS_PTRACE -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=veryStrong123' -p 1433:1433 --name azuresqledge -d mcr.microsoft.com/azure-sql-edge ## MariaDB + docker run -e MYSQL_ROOT_PASSWORD=veryStrong123 -e MYSQL_DATABASE=testdb -e MYSQL_USER=sa -e MYSQL_PASSWORD=veryStrong123 -p 3306:3306 -d mariadb:latest ## MySQL + docker run -e MYSQL_ROOT_PASSWORD=veryStrong123 -e MYSQL_DATABASE=testdb -e MYSQL_USER=sa -e MYSQL_PASSWORD=veryStrong123 -p 3306:3306 -d mysql diff --git a/screenshots/history-screen.png b/screenshots/history-screen.png index 094d123d8787656e3120e1ed8b27349e3a42aa20..4952a6f8ecae6d8282532ad27f8f80f0701f21e0 100644 GIT binary patch literal 256731 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

%H5;I#UTa2nLarM^`7{)=fxpsndTxLF9&qx z-RDNQyW;itYD&qoBKt@&KlNgB2pHw#TeJd8JH8%GNZ*T6+Wl=_Ry5M6|ATN?Xl2u- z`{n`GQvFGUGvka)^aXybRygnh?yy@jOk~uGmiK)(B3*;Ea;iq@FOA3W-L>)lOw$y= zvT;vVy|5)r_Hbcn-reFQy+5l(6|#9HBQ&DfJXA;ab)vZ46(JR(iq~Eb<+Jn{X%IOB z3c8iV4q0^!{y`JUO{i8k(NM?5?)T~_-e5mW zX$C$)-W60qzD27vM}Vc$whKH6DQdd=5^X`d;ISvP9Nvp6N$_uNX7ahrYTS^(2lFh(TKxDuia z&39V$P|Wl65zv>Jw>b}9kPEfNFOzmE&qi#doNLrd*W_sU;u#x(xwvSB+S1H5z=?M9 zI(>c{X@~YlDICGV%88Q4xD6{0wOGn(btSK1DLcj53&!75%DrAg31J6#$Z7KCx=z9oS zkd^is{{)Z40XioQu7l&}_|l<`9hLu&n3zAd#o%JEMW9K%tCy+BY1E*_H zd_6n2L^-ZGtLvd9Aidu zms3nk6L)(i4>~s#+qYL9V|+S?7J(|9)=(jE`LQo<+}U2Kp0mG>xV6r1JN7zSeCbP+ zDg$p5uuS65(M91vmxvei6y+dXmA~!3on}1dSo2-P>57g)UG&;8W;dC9ZZI&L$RHg^ ztb-vNtlopFu61P`hWRNyC zqGJ1$+}Up?d9EtsH9^gk@|hJDe9ftqTJ-Bolz#Eoq7$MD-o#fiJ9UuD=e)UPytZpA zT}E31SC)ZEnM zKqU3EkNu=|Y9tZ?rj9rO9OZeTRp122kN1>Mz_Q`8NC|QaJM1+5YR5HE#L&#oJl6P3 z0HN#4LB>{2yFh7mohgIhk>b9cl>$4H*pZyrM#FiLX3T<*b-Z_B2T5u9w>kb?!1oZ3 z3Tw3U-4wpJ?yq(KBs9twp6#ogibjiLK}B(=Hh~n(r_UkllOZ2}Betd!V#RL}!Nsn4 z^K0Hfm0_ca{^D>}QT&lr#Zmnk?X<6QK#15)5H?WqjB_ak!PZeP@SIeXnqH;AIg1RbNEeBk!; z;pP&o#1VB!{F3l*Q1)vDeoWXNMAlO3O)KO@2J^IH8t}-jI=TbZO>l4@so@$-spnmj z^H!cdnLYPWrmPfJg#5Wlr|D(pqc=MJ>`Q=o;JaIVw}Z1p>n2Y4j+r!sD10|wJZCWV z?|c7r`nBr}6v&VVGV~3(Rhe%KZ>(uPMJKC&1T))j0E|F)XDx@3*RU-@vE2hRQROsH zGo!p^Jzxu$wQ$fi#!(2PFt6rzh0+{+VxpMo1yByG-B9zcEE}qIVBGR()qu;wUX>Ir zq{+B__EXz_i&|flnRq3U8y1-@HaTGBhuK+Z)c?<#=%z396d zjc$73#~%f%F~_Wn8a@RBX$wX(KBAUqk_P!S&kOZbH#~m#1L$b%R_Z+s#>{d{H;Q;w zdV#{=m+<0*i10%H&a&SQV362FAH3V8VKDE??Ypv{byd2|Bk2y zSFF=0bnLcKshLZ9fkErhfh==&ZpNP6tXv#Zcs-MMK@4xV?*Y3;I!gB&Kv<{_?eT_~iz}~ol}U9p3_EVhc&`lfr^6=O%+^da zGpJPYF`X(5U=&l%WzmntqcTCe&l>O5=BLVU<>54jy$jV7dmoP095V?@5Vqh0wn$!H zB}3ms${=S=Ih*%ZUp3y#e}Ch;^EYJN3P4#LEV@q!(gDcGlW?pwxr$_hr zzYp4l^Xg~buGjo~U0gccN1C+PvO(Y>qS*1@z4D{f`YZghye7dm)ys9=&p!a^L`7nq zTkm>cJ%S{^JNBr;Z~iHim3ROhQXd7I@*}J{F+A>FD8sRdy^3dqrAw4NOd9R3&2E7B zVyIhSJIy||gHYTaLuS*nIFoHcXM|Ovr(^y8oK&?0TAKlq(V)w6_cdK3 zlX0dL&QJQ6Uz(Z1!&6|)^1>$h`AOMDNpOe`To{Z~iE@~8Uf_v1-$dTziQQU5c<%Fy zd2e>cD?H6jYahR9DtTlD7dGeVh~Zs#m|N~nB}9ARCZ@;Z%ZhgmCaydD8;`-Cf-Jr# zFagTWr=arja9i~#%k(!eYItJU zbs#)#xs~famH!atU}KluA8}pmC+yk)U@aLRH9?_5uYdQ1K^Jl@GW}if5t-0x*MtV# zQF#iP!tJHLbu>P8vQt>-eqHXJyuT&D{@#2cqQW`}QwkbMc54_D%F$}BFnmRtA2#6S z)!luT>zlzoo-9HcKPUFyYcN+UZhLDj8HR7;hnL3P(N0eKqO?M8!85uH1|Puv>c>GY z;p#kt?}&KVMTdR*d}*}!HL_Lqz|y*tB@2zqTwNTd#pS8`;g3sX2`jwGRXT|-BhSTj#_QY@;{=Uc#;f=( z8}D6h+_Sk-3Vi^mDRG6go^!6~%8v_UX$=bvdNBS%)ul@93;<8Nb)@X^8Y*D2lJ?Um zL=b33b&Bc06Or~FTJT+Jf6%bImmp#Vjh`t#BA~0d`n>6SrF6M|sF*iyg133QLRTkM z{-GFjCt?`dfWbBN5JFuRnn>G~#$GFEk-I1Pqa!%>_&L%8K0|-omoMoZaIH1f%J*p4 zT92kvQ0z|C9aa3hq@gMzSHlB2e_X0BdW-S&M0*vkrv`nkeVP*pZtW)?H>_h&4Mmro zf%K-Yvc@vwPQF$3wxMC!sCm7!?{g_MO?aZPBu0LHYJD{F+zlIPL4)G#8_1m$Xj9%e zW$S2TfQWJW_NbK0#Ij*o`^GLAUeoLFxTo=&OXc(jl~-wnXDk|w@qxeU=Pk!Jqp#tga}};M)j0#qru&dqtfM_|^sPsjqhpyQ?(fMcEgtiX&8WVZiDB zvWqUwpUtd(=1~6%1vF7w0@D|&N2FjUmJ-p&?(oCL~xkCF7MnY4m)pPIZsQ{;el^GDfn{{aY3 zrhh`tuviT4-4c0I`6Ecd-km~(-iE}~8bX&OUd7z($Ch`l*R7|N7wE%#)r>NkBImZj&Z(Z1d1&Lhi=Gh^iQSWi3P! zXbQ~jwNlPiD#ZUO3BcX~x8!?(v|GiU(px~pt@CTLk4t1maVwoLpjT}|7uj`o0qlBN zbF{=zbE4AmN7LJJZ!rQUt;+T6-;Dldh+a*!1U zW%bS-)7#NRLSKHv$}iPU<1$n*sy9+>0Wmf%y{GR-SU#O!01Np1wFBfpRQ__g;hFfz-#V|*`~_P}+#jtLZgbCOq_fMdoZ zRyJK5vbB6u9A*OLulCeRvEmmCkI|6y+&4>Fk}_ z7Fl8F+fY`dIaK95sAE)S>BIuv!n)s0BP$}f)0kJL9QlpI6|+R4%S_}KCo|40fcfVF z^s>?wbJ1WU!UM$}*6vZnCt5~$EuNiX#&&NGN#wpsE)=2r6NJZKhf%?rm0UzEBJa>_ z+ZYrtzq0AcO@L8IlZpRSD^qfRtF^N_Ux%;2bVngc7D&uCR-JG7iZ7GRl6boY zGh^Rb2^qFwS~m&s&$~W#>TiDEo$g5iEl8fz!zZc}gDP$n3y1yM#Bn#rf~ojPu)jZp zx<=U+)|}6i?N%!1HATyD_3>+j&<=$d12T>p5&`yPn*OcUbj_qxSDH84fw<#R8~gF` z&cuCqXI7M=O|lus;T-D^nfA?7PIlQ4lIsbwF=(?mZV@;k$c!D1P7q1H(Ll_b{8G?I zDk5*|D#e=;celf}l4Pg(GxTOc%sDDoKJ|=tCVZUa+FZ#HHYxuWL5;0?$#VXJoyIE$ zf4|t31<#2ZCy^ux$Z5~fyS?t19_bym6**DMtE0Zcf62~}qsKEAFt0{?-&c7cy2-yE z8JYuG^jgHJ2Z@(dkB&F*1v`(`_Ingp_Af+#+2=!YVIESArVd7d_4m>PW{C=Pq4#AC`OR<&W4(8OM zp|6+_oLJ#i-9!;_iM*_n8TlP!d8kx7-NR3Dg`sh>oC+3z=KlFje|(K#6lK^=Zk1PdTd615h^Ri^QyDmA24oZiknKT=n3l0Z(p6Wj=ZOmwqUOX0zvwnI zsCRB#)iMa-zN@>`Y;~c2?otdH-bcg<>G zGv`?c=aT33`4=58%qi`q#^Z~R@FbV?2~O;th1&6GflAE%+pdTI0(Da)U&MYv>_F-Q zu6XA63&|V!^Fhnkl6Lx;>hQ?lwDPjo=J#*Xn_(b%hy_4^C+YpD8Urum;eBK z@XHhMeYs+z{-TJxbFZ4j<>D#Gl|Pbesu0?X%E318;J)j>MApErpmVrL?2ZLdHX(K| zR4O8SZC{kQHaw~YDcc{RpZ{>v`HX@Bl3rlfzNcF7Ugh%>K2<|P;d*?w6#&pD!Mu)M`s9pZXuQ^UQ>crKl7c z3CHrE51RTfRZ=b8twoAM^Bsz`&XLnRHIG*f9Qq624i4=CDSq^IS2ihM6^eB7iXQ){ zWB(^)l)W}d?!zr(hW@W2683?QYdm+mQ>9GTOsHR?Gh_4o&ASwwMzGd)z?lrR-`E5u zhIsieNN&@qU{^t{*;TvB4f56mQOgUucD+BBlXcUqr>e|#{go*0sLrYJA2W6vW2@r8 zGowL=h7V#g(`D5^Uk7*^XXC{&=X#Hp#4(~bbL1Z`;8V$Eu!O-g1_%zFP3ssiEJai~ zy!?wSO^)UCgjYtUceO?zt3te=SkFYhDq^761Uc3_vfz5!3bc92Eu0jozZY(}FAuPg ztxELA)wSQS6{8Gfn|2*;c{5?%?mfBF+a|^TZ#n5hJ4NFjO(!rwTK`_>y>RCsk#CY2ZR@bXHp@z{i-I?bU{a-{{-`P^NsM#P)oHcl?>WG|C|7Q0?R0 zb6`}0{8Ds-$mCyOPyp7<9W*6q*VX(ZRMMsMc1J9QF822PY-@PtD7LSlNLOyU|NCub z1CKEJb6$%hU&gB_8jtQUlalVaVTT;#4)Kpm#er=4{6;icEQ zDo$#wpN0zV4??*+RzAdPA}5ip&nuLV)l5L2GJa9+tZ4zCQgM!eewrm){eoEkzBcXc>u%!zx$q7a#vYi|_iW%&O@@@B1Pwz9*xQ zrIv+DUim1y-;K|biK6DB+9@^S?Fd_6GsSet(1?jU&kriw-vG1#D?1DD*>_F;q=`x~ zv#RIQ1OxaW0RERqX6)$Ocl}RB zaS8@q8i(eD#Y#|xEs?tNyR~)IlUbnLwjFy{exIThy2SYrh>8=FrGr8$9Y$OHef_Ow zN}3HaYj=9hxdaZ*li>aQXUn^<(T;PFV~G6&B3CzB4p;kS@JhgFN-w1gHOc^dA(bSY zH50oA?bcIIE^lw1&&Z$AN6at81RCa{u8K9J;Y-olXQkd{sxo!~WugX!!6vTv?X%!eQu_7BdxK-=D&`)?6^s~6Z8xNP|q1zdHj=!jf6H)^ev zrruwuYFI}?`?o4|*nF<-59A+leDb06khH_v_3iLoB)R<`}p(7=Dl5WbpA$l(k4YGz9t)V@&B5@A%FKA)*Iq< zDxU*G7qo-=G|2S1=H3YyuazVzU|AUVjLx#s@Fl-a>e$dyw{_aZVpT|7oTx?TkgxQ!HFYQ?#owXN&Q(aYu4cg-0M$pwopM$JOPn3{IlY=UGdp^v zD+>A&dg(I01L-TVSL`%=mp`iUf>AiRre%sd#gRMr{F`Sv%QR=u3ff!;U~aIoz<&Az z@Mc^f6Ri0+5^gWo9W4~~FtEUyy5n?4voCf?Fi8rQ>tNpO%7w7V^1F}V@hFm7DQ=l- z^-7~Z>-g!Rtt!A66DA6b2waO(A7Qq6dIyKVk$b^NtKUG!5J{n_aTeahO_jL8)GjFfh=I-D=gNzLzsF%7e&@crD>ZD%?SM-DKjJB@y7 z___AqV#NRyE2+&?s^q{Qthd+(r%CJfsu65*$}~OCO2*5pY7q-QiBwEa>LbqFFxwxb zVeE9eoo?Np!Lifrpq%&)Aj4-20x!jJd8SWFA2iwQX%4&@0d(yVa#^A0B+-j_!R2Sq zti+Gdy8|_Q%9L$AvKy{LIR1*!JH;kH+9v70;72*#r6r208f1J;H~TIkfmrbI+QUru zQJlE@h#Ha5xWnn4Rw|s=byLkq3W~l2jBwK(h|@$7`%}s_?L91d*N@q{Jof6?Pn=kb zo#QnVUohx7UOKC-u5!?{`dmmkICH5+=|5>$&5eN~HRFP9dtL+{ItMP*7+!N9dVuBg z;_PS$+fU2lKhoe*opurru}wR45w<)o=z%DY|8|HCbZ3~_qtYN&eD@3Q4P@(wX3(S# zLV9CLr$0;Z1y%>X-JaRYiCVsv|Cjv?*gqC`_m9PS@$tG-z0;(I6VzcKzk7I058L#N zInJ@kuyC~aGQiHJ(6DPkib=9tG!L&m9HZg(r3PJGz=B$-}&$ zRMqi({!i0#($gP!lO|0WAn^t`_c2b)QP8(tJ-VK{HdxBtO);ubD|eGldk6B4F)aUX zn`WAm)5)ZhIh|t-=;bJ#6l?g|{7t~)^q5$0J+-s5-b1$N{OO*irge1#(jo<=a(`=W z2&p&q+I^2Bv&weFRNuA0S30?7klF<;_Pp+tX61=WM$P_`b~0&&_mrg={$3XtP^4-V z`N|+!3TkJ0sm8fqE4}kv!rMEDfo$D9~AgF7o5_-tuiCl zh|d$tPy6)Ay3Gtg18xp89}o`2md$JSa=N&w81Z=*VqgQ2%dU57D_69_?&%cG2R{SQ zt(^UZ;?lGAZw~DWFxwUyHWdz1kx^4Zz;0`zl+%YqtC%BmcQi9^znSW`_wS$08OXe! z@_T2?oyTcJ*xrf~3r6lo@1sfW*9EM*^MB-`n|{D7krYvH*6M#L@DM$6AdYFE z{@!|C*Xa(Inip>kw;ps)a5&R(N1jy}IcNEEaq{sei^Ynve?Uel^z-Y#Zad9khl>oh zRthUzC|;Cu`ppunhE5D@{n?9fRS9*u{i@JlEq=Dw^|`J^44EK}z78t_rEc7*uEh6V zu2Gy^8Dn5V2xZy}`~oGnm7waq=YG5i=%z8{oN%4kNFshP;MM&0`k~6yu=9aP?+{SU z^{BXHHesW<}D9W7YSTj$$}7&-aq|bL$hW! zUSUwFzWH>t#g(nIYC26X?a1{pv+8lKZv~^H;{z_mIS=>2QCD_nuPTSH2c^e_?`oeE zuCfa#M;=-{SbGt(6tDWV2zyfx28H@WfD!a0Uyo@U!3wec8=K0Yf&?Q;HFlrOTOu zE+1(MR)fkJEj1UbT6#%RIz%_DS+tDAolO?m)Wo`==1-0FLo4 zd=5z%@k;)9O&9r$?_v1)!HA(Mr{Q;B->@!~3f3D~toSj{e{Tu>^dgFwCU zv7yx_-2~AX2JUU8b?5pI96UnC1&&C#nWVEGDv$Z#_kLFnB#s-~=;X`>(=MY5KY|%N zS=cl^0fJC?geo4dfi^pXv~BU;4Q3Tn@>d7WG!%%WGii_k_ghEww&$W$49fNN;pUC^ z%7cG?+f7}lKml8U=qLz^aIM6!A-B?HdH{3oFJ2R(M|Y5yz9{6VwE#_CespPXN+kxS zRUzd|Updp3-S>4&I54t}{y~*X)=NSTfQWE|V|NbtlmI}t(H+yLZGY0mt2td^EOzpvU&uz!%vNbA+Jd zyV=~H6gzOq^*H#6^cdYH-d6d15LdLv59i?X@<2_mV&A>p_dpfFfi$bgmf!5#>&Vee zwCzeLQ7n4>_|tSn>$)n17d_i^yo6BSIjt#n>RqM7z&9(Pi8}jr6HIPbD+|z8#Tj>$qEM6qIe({jV-k;)Hswrv>AU_jp@X%Z!qW{hm<6g< z;1C!c7GES2^(e@ZxH2X7vjXmbDVmO&w?*zO5c6*gHvxWcY@!d-@M-qNNo`B`iu6(l5r#jxr!q~I9u zjypf!T8P&F98YyBpG6?`n{cXt259w1c?4R)xjY4`Ari!4-ONN~=K-|U$a6R^z^B`Z z{&ZtKB<7(M*UDd2&(F{6o&YzcE@n?k{ZaJZOv{(bjp`N(keo@^r+X`X8Mq_Jf$V`Fm~3!Ks&RWeeBJu8^K~v%YAE7o2D}O5hKl!WN|S851cVorPi(>J- zt;*mW-r4r!ng?2gj!OfklCyMB=LOe5mhu}A*EyM5x3hd+B7w*_kKPd|e?kfS{AhCZ z2KoiRrwJE^7SIv%>}GgaS^&CbAuk?KEQg6pyc*8YqFZpO0Wc4WqRP&_hMEBDA9Ch% z0g%`j*+9ty0sDknPvp90{ZtG_k@m2Hb2()_t`62YY=dMdIX%#RX-9?&8`xIu{1`8C za%l!@^wAH#dUfS-8N9;kkltBLH;INR=0Q3Tlcw5};trpEpG^ItqjDRZsMJzMqS;Qo zR@_w`pz}fkrQPTo8um7j2up6~9N+}G$1T>YZwHECS69P4pY0LtvAv+Kya$bO)-7~d zAbFq(RFXLhc4nP4H9HaHXGY&cAt{z!1|Qc&{KT=*im_qhP)v4r9t5Q;-~tWdaYh5?0R{V`-G?}dQAb)-E9 zVEFn^N$}(R2=Bhb01mjw`_3#an@%NV{b{wLg4W4HT{U`%079fa`+1_eo0Er1FT~`B zLJ*4pLW&r4{io3;Sbgd7XNOA^AoB*`G2Aq<^S1Kyl>IiTP_ppJn*DD+FmOqWO26oP zJx=2ev7yK8gs4B?^0M)Asc3P(J0CDi7qrpgdjwYIqQh*zLbhzct@ISdQOLH;$^C>QM?&3gwBnC=&%7U40ABTRg>;vIMz$%D6Cjb$o*F8|isxQp1SlZ7h z*8)OW2@n>PNR0fZQ`)L~KZ11LV(ZvFx`D#7`EPy%et%XX{Zxn^*Ple|(Cq2@&!26| zvK%HT+&j!WOOQ)^AR<%^GnKoJ7JwC^8!64q-Wt{!b#m|J^}jjF|4e&6XDMQ%6VmCD z+b?#Wj2#eVxwd05fQ$Ev9pjvz=6`UWtv~P*6uS9y#ecibzkU#-LHEDmzndHLNJb=) zJM80G-m12M*wYfa5S<;kmuy_-&uYxSkrV%O1C%7_!EH1ZC5)1D0}uEYJ_3Eb9sXn) zdOMuNf4!*vu%6j@jxt8`4p_ibuYTLe0cX1crtUllHpS{%o^V9#XEWfY# z9T%GJrW?2=V#jRks~z%M^3(xPO}Q>Gm%=jT!LM>@?Du-RuG?O2n^$0(oRZ#7^qSIU z6WfkzR8KdABhK7h$$#@Ym#=o1Cn_h%ox!?NT-z}i6to?rec6urs_TiDes5JfQVDiZulMD^olXEVjx z2=D1%t344t**f22NVDl#|MYL~@79xuCojfd0+2YXchV8qNf`7}LnoS0*FuSc( zf}}fG%M&+#jSj!F^mGQ0;c|Ue)o3H>ZFo1yLH2L#k{^5i9|zzd-u=<^;MG$34+ZcGf(__AmIsErKxSM~h6ZDh_|=!A2B#B2YF%J55TzA~W#gt={*TtB{EyjV@Q$_nbLgcgjElRQN412%Hp#Pgqm%O>1 z^odLS#wemi^>FF9>_N}s?;W4rdCAt@Ec%E)n!XOz=MO@kwFxw^49zb@my z7aQF@{&-gQM-#!GZFsFBZ4oVa#7iOvA5ZvGo=xiu<(e1vsEPX1D!QhzM6Q&AB}FDO zWbUZJv5c(BV_z&~lF`g; zA5&55L9VtgY(#~R1}vT3YK86O5_F!vxDh?F&RbIO(4K^aC^kLh7UiMg$226Z=-GC0 z(Am7Qm7a*69%PTSbs;aR0UR!0Q}E>VQvqEO`ci6P$~oaG4!6J7efc>fm?1u7|;gk^+oXK`jGvaH>jXsO{k zXsO6A495U`;;Q-0m?=7bt~bV0I^_$+jxk`4tLmwYzs?I2tLI^gFYIye0aoN@M+>NH zXk4A7!zg}(flDp~R@GZ0Kk@Da^C&+lS~nPFWY;HfD=Lem?Tt(-em+FQS!$yp*=(tH z?S;?K()>hI;qxc3Ohf#?5j6k70=0(R)!L^r!EJe1nx$prVjvo!hbMuyjmXUtr~5^(TC3f~`<+W+B8 z|0)UJMO|#X`y;S%2UD4QE->=)sjaA*{BNR5C#EB^R(XAKYhKbcuzuKOybzeo}}{TF7q4P<5D0N>%AxOM6&@VhM1 z?8tPb8Db$l9W+JGwgcwd?jVC=JYR0OM0GkGj`z?;2kLdJW$lr==zPSP(Qkq=5`?TM z50eyTOK_1a+B)&J4Zma)s6<-t*q3iD?VBh%js<6V#m-lNxmauPwPdaKL&43GOEG_S zc>SZy|D1Orsg6Ui8O3_z4GK`XfyG;pcRubXIoh(=OO*+}-QDmavwq_hUM?Y!epRh> zI%1shxO7*T`{h(UrzO-@QdIY2WxqBf;K>*~46ZYMXLf%kz&a|ue|HO2HO{gc*9SDn zo*fk*yH4kn=Dwf6Q+6ElM6};Rft*3~$HbP`swiQn7P>&O;dJv9{B4C71m-6AoKwu9 z-mgYYn#vgQhCe~bQ$E1y!BU0p3oIb0sz{wK^Kdjp{XiLGKQCl?zg!Omx7;Rmv4!e`WU4 zq_1%PRq-Z@xzD}ckh8I$U1U$Q>$2X6h5 ze~CIT_gze@av-J^W?Mqm-oBRX!-AD?8NQ7^s|gHdl+m=9TqfC%66&q9^+~L_fq~mC z+v4oVwi3!DWy1FvN$=jWQ8HbT37^7Pf$}}fM(;~=xs{&kt#Zq}?=eOM9h2e1r|zEo znql&s(UZ}W#?DPJ&%~A&VX?^gCfsPRu3w01RvuwoVW4X;l@sH*>bY)d-f0k@7dlHZN>R>;d*P5o_pOs|LddxU4VD!z@`s_}l z6g%t&Sx9W%YTVriH+b|M>QKtx-h4FA(~T~mSI`e5ll->DM}2%ySX3ZrBeQsw)Mm`# zAxZE{zvDPGiKXUK5jSZhc^!jkF!~4mJK~y(x^@avHZf}CH9~}YjH!Rj%vm2pa8|dv zy6(@_Sa!FP!cpohj+_00P~)#W$lMB|gh=f6i9za(w;XcE-S;&nn5*3l8Cqs@!>XP) zx~=d})*rpNR%1-?>ta_Y9lcBEnX*vRB|p4azexT$GAc5?Vp&O?Y}0#AGHqy0un^s= z%+J*pR#bK#cV$_Cz*It}uAPEk5g8Tv9|&7hMK0$_YB+2$4%3HCXk>`v!tD9emen<1 zn)o?}&244{uODrvsBrm8A}yJNnY{Q&22XQ&J-%p0*G`a4_gi>V>?yEkKhuOhjtLTC zC3TkaBZs0jIW(uZH!Ap(*H;Kf&{oOW#CIi-S$$ekZr&QY6l9Q}r&f%RKAcP30>3FE zS;#@_jl5QNH0L6UK^|Tf`n

mNfY(b#AtN_lAEteMgUR;i-U^O@(9F3NovkQY4bp zXbh|UADQi^>X?QxiivSFBx)<;F*N(#i}N;Ijd-ehDenaLJ`-l0sS4gMFWG6;&dqF^ z$lkMMSQL5=y6+7okFA9HMWw!>^7{L}qF|nHTP>k44 z0k@9g!d};7;-lw-si8WFB20IPfvx&W8n@I+zLl~Ty(2DL-!m@y!knxgX31uhwUTX} z+W6k?khs4s0;gI^T`>;27+1?rkCX{XjZKeyG@2UXRY7ngkA#M1)n%gNXCvA_ZrBH+ z?d@&&Mif^0rX_!#$|6!U4@m^OtswSvzsz8SCya?{m`;?mQLujZh>_oouC~o5`7$AD zP=?x=ocBhEWdB%9XsHkt(QDJIP5is1c%#Q=kmcm)c(f+bpwBN_+2}hrFj1+9cJnml z4_Th5!)13;T)&7YGEC2xY9{%3*DNr{>v&+AZ?{wILh$Qvdv>S+!*-mmSdm@T*3KHd zS!R1SW}fEgljU%{&@HQ64(gz*#>4%2N&nHM{6Bv^B}KnXNPWytzu=wXJANua?*3$J z%(3+`gvtVeGu_1f6%og_GCy@DfkoX-Dt^`L@B~A%@U%8}1gzKP`@SECHt9hLl;fIX zbJodSK{x3D=Xd;K`(qB->CUaob_o-M^)u9!c&c&>Py4JLM&s6GPKAxxwe`X__*FOTH&Ak_t-8Ucj5iCRceStUBU-q`h0s}fCuO!?qMVTIOOC7*5j z*}+_*Z1HY8f)l(_m6Y77gdPwGN{2_Z3Y8%_>X-st?)UGSufkh9iK3+0-?=c^;~ z;uG|AvbRlSv6FJxO_4-9c;)0u|I(taA1+Y-bfW+7}(hfx5LL)unt$S zHx9XKXR-ISW&90!M6S^r>R5d|snzPYL02QWettS#-GVX<^OA?CQ4MIeH>vG2SWFJ^#pKKPeK} z%~vnXD-4)nnY_hLszF!1B@k)vQE)l7;WTVHW;U3;o`9UaAE7ul1Kausy;7~z@)OCo z--wK|uOG_!MC`b4a3ddnTya(oIljfS?xcer!1(OlveK~HAN?eYqx`ice3fQ!p|99v zhMEvf3!I98WCwti$g7`>_dw`ZPX(Y6T1=t@w?c%R8}2-+FC~WT6Gv-XryKtWU~{CVCdoG z15~K4P18bf9vv|O-N*uiA3|6sdSE1mL1GY33*!a^g=~ZNVPpR6&M4> z_eHDTbsF;TZ+_Xjk;07L3{W7A=~d#X2TWpS{QQ0{`8`V!caQf{<`^1cYxlicjTNGn zlMKFmOjdp9m|&@sL%;eo1jL#r6vxBlQHA&{kMj02!Ys_TB-YGU~ zh%duWs@r1|N{{0P7>S)u>&a?p(rYluEAnqz^ivfN<5x9rPMLi*A1$R9_-4-jQqGJ) zwJ}>Q)=)*!gSlhXzj{*&+Ar%Ho8sG}SA%#}dKWY{MpN+De*Woci-L$U>COzrALs%1 z-cra>QO7=3B~$^|w}DprX}HiG%{MH3#|ktu!*_uVqH2xTWOmuh`pqKV32h z6_h-^wH=a0nOdh`zxJv$(N!`eF0qOk4BEGmIM68;OqP!QYGIN4F_={ zU-ndxsuB|I%h+PAlqT|$tsa(s$V4SRMeDgbD#1#yjWgavpY&o8w7#Tlf|Ouo({GCfDr22Zzx!H@mTX3U$5Pt`F|(< z30==^?JYX2<+}(kPs}&auvtw{5wbZ#b6@ zG{0+kO_~-dRa^z3wIIr4JIH*BZ8tDmvNN-^xpz1AK7_*JR@1DTvdn6hI0q4aoP(N4 zo4cqo5ux?FFc=VYH27c}nxkC#{KRd=T*dra z=8B!gpcLdVTBE(e6S^|?qBzCN9aLrtii=1LmBcr&X5CT~j;mac3*zqLXR|gzIfhXi zMYJqQzAHU6b9vidX%+7D>q>BXmEhu7IDuoK_BeXz5;c{TcJOj&-oBBi^~G>#vr@OD z2IqwHQfISLCu10KqmX_WwHJmjB6q`lp~=dHE-KfBmMG6O%hM^bMd7l3ix!_q!6YR8 z0}(lwajk`_2h`p9@+1aIrqtp==V;*$% z!&7ndHL6IslQQ^7*npYWf~S$^Qhz&-B#(?W4_16wJXT}DWApsG?G%Wb%Ptizq6T-4$# zZqoR|!JB#gERmw=*RsN!Jy87=QE49CZwgX0IQ3=RQf&rA@F<`(3+^<>BDsi}TR%;r ze>UNv7bg5Dfl|pSxXNM&v8UcT?brhk#`FYV%ntuP3J*V0LrfE9g z=!9LtmDg9f8ocYgT-^Nm*-j_EdWOtgh`q%k)mLxPw5U*-^;Ony2k|Ee9FYV^Q-UL{OkXJ;pv9NIeCs^Gf3WvoBZ{N zJYZAM1e_ZSB{zYyeo*u4P9$)fPY8j-A~2y(x?}Lt`3HW>FP-&!hVu*VP&g;A_3s1R zevvvTpI!!>girCnX1|R7#6A4$0{{L=EajZ0?+XH(eO)5>>%1WLhtK14>1E)2&ibY< zzqG+0%kaN<&dclnz0kkqg8yFVKic*G<$j+d2sZ5iXMGFn>+dO$>o2dqAw71;Cv9DM85-_wNFz#y{0*Z8SdO<8 z<-~NN>E1gi?*0Qn5v`{hNd4<7|MwWzJReq`eRN=hv(f9l$3MNdyeEfAUVPGwUCg^v5 zm^ZH{%Kw&yM0q{`{5oD%Br2U;kQFv<_s>qJf00Cg^Urs$&)@K1{oX@0?2BDo5hVT1 znnauPbC@lUIw-hx!Qu7%+P`=Sf0~b!T^DbtO?Az`bMXfH2aw++ON#T8+#Xf;7`kBb zW~o@G-=xaS^K)?BWb1-l+{K(+XTa|f^wbpui8;ebbF-M)Z zNcp$MsSXieVfNd766zFFG}b=ztzqr*!#eEIw(SgVT*3^B3k)>Gwsq9z6x>q3VYRBi zJzx4)f$!o`NQ4oWPT_F(lIHf_()P$z2%W0WEI&n*mSXJ_C5~*c*j=JumOJYH-`~7( zA$aeKW=o8#we^J3DKT<{fX_Y-mKGaAIQQm9Ynx74{W|P^z2NC{z1;a>8OG~fFdtsx zz^)VGMZ>DgTp=CgSQ}$i_@sD%;kcoGZ;RjN*9Gm9hI2x?v8Hk%SPa0*TKslfVJ;0i zft%{D#bS$bv(j97Jl@A$`sEXl{=QB!@WncV6jy-@RR&pU`#Rw@u3N0;Gzu%)a6jRk z@@N@!)QZFT5AXf#r8B(`J9`fdyZjc+H+4V}HNE@qr0MhZCLoWZG^9w*8Q|Jn_^O~+ zTJFIS;{H(5+8~{h(9&Gr-l2*5xVfFkpJe&|@#T=?Bgp!Ag+3nH(Nl#4Ax0ONQ`AKK zHe0Lv*-6+vi2xe=h|R`I$CWS-L}!Klatj53x$6~$v&8-_uVU(+3vtV-(x#3yvU1Xt zAll^|F_^;ZSh^0i3F3D^22FUKdD`24WC>$Z&G~ls50D-9`Z&d&%Z8u0AC1HgVHn5U zWY|gqXg&eNS$(vPc_CkXAiB>7KG|`)e!Gw0206m-@mQ+Vk16smAFk|;?SuB){O9O_ zW@Xeu^;$m8SQN&eTe&XkBi>x!vJV$!@Va{<4j=q<7S4~$FMhruIbZR;4jT5cCydT#tD!5nmB16o^_CFz2C z-z7$7hSqr^k3Q$L2byQu5T%9s>%ONn6u=^g*D=&JTrI9KlEVr4% zoqV?`z9Wf+udUA(;ZndcOszn3ZtUCMur50QXFD6S`HNd1EQE7UDU3usz3VvhF%sY3}fO&ri>9 zsT1{nAWKhvXVGohB6IrqySTriJw5$}B27G#4SC}82!rASfh}&Zo#5KA?R$epskV$x z{UanqJM&|y`QW3z4EeR12|7FYfxAn6;#?Kd}ryb&l7GqY1XI^wridvw#W|ie77#X#9R&9;F#LgxCOzyRE2A# zoKMKV5g>#sd|vyJ;FHwO)!;74LHPy?6ctl%%yxE-=9}j=Jh0f+AU+zpGVD>$=ibTf z-0{R=_h$XVUquD8Oy{;>KFS~NeqjqV!D zCdq%nDWH1Q3`0WVaqgSYe#AA+UI)LTSBydf9Nfb)UM~lP-&6U_~5>v}?^}cJACoDeT z6WD!by|vRlv@4$18w#vPDy64Lw#(Dx!<%!*;(sz3ysV?MXErgZr>g_rX%4r$bR51Y$r1aD@atc zh;tgPmo{)w8fi6(9>O^y{_gG7TZDPDm9{W&uOCm`{%uZ^4hGpEERNm%+6warMQ(vZ zJKKH6`4a9T_#y}1$EPT`q(oC*{#-xm(K!@V96yC)UgM9cPhylJ7j|Ju!9gzRg<5=C z)3-&p)3ROvXkESnqB;H1(l&y>;85MTDyBQu;k)rY4WoH^dhCYqH$6$=DPJT~5^~?o za$FgD_L23BrhKsTDwkb$QWl>>ppa^ZQ|iE&=J|-#j9A+U_PUYjnhEyDw_y(DNV0JV zo|91Poz1avo2ms9w}DD*kK+UE(c^{NusLv8KU5MxQ=i_Lx@M)(V_>y zHpi^hM1XxkImjOsdZ%D+$wV>2NoNO07v2WXc=z3DB-|J&694E?I^aUFCZf$sY*Rm3 zCMO;)kcQkPF6m5egQ!E8$}EQ7liF5(8SI7!PgNG^Ry@q@0*h)_3k!FJ#Mc~w^Se&Y zsmfX|o_8`=Qfnc-O}XWY%!C&V+BMi|zSoWv+w?w6?znPWX~NLMU#UvQ2_`SJH-9q) zbq&c?>9Jy1#V30k<`n(C##~JK_7$F_PZ8ZSGUTyp9(`?!W4qM~%#k37+~#D3qQy}D z(p74YD!cdz*STQzot_ci?^ceqn%J4=WUaB~FkJFP*a8FXH3p%}=CM{nfySr^yRPYC zX=@m>x&kOc!DFWtKnpC57FN6zBzwCH$F;|9b(gpg;v!m;=zBR+&ZA}TdG4vU7ckR1 z|7xH>K)@8vE-zgCt2=qBWZf+#yQflSy)QEcU&R-c#i{?W1}SyUP5v1h(d45GgIzp= zeX71%r`D0<>y%?n3`Q8eEE}^xXJw4yhaZ%o&wk%%aXm@A$6c|DJ!zy?0+RHF1Ab(e zm-N7F>protbDWChE=HT*k+N;qUC~`7i46 zc|S0zGPTC+ojwno6A~R*_59Mc1c?`1cpJcuv0iT-`?0Um;L^CXV6H}$3<=P8KbEBr z(@UWeF-4FHWG`5DcF0I|fx-PaM6A3Je}Sl#P7vI5o=9l|Kq`yyL}D!EJj?{{!0TY< zJt6DUu`<2F*aNNflF!tkRYyqpu$28PYQn0@jIqQrs^T%t({fQ?PSag_wJhogshP?v&1Gd7Q%~>iX&}lDKQ_AE>3)V}pkt)q5L; ztLx)rB|KQ}MB_C3ri5C|ECT}-C&1+E@Voq%{JPc#isA~MiM&7 zg>_Jn%pj8wn&_~M`c|js=!7`J?0uf~+HC+ANPAchpamjUy&FC1;_0MAo~u{swMY>- zUwO0i)g7-qGzDeL;2J$hX6@2U8J|38GCenRNe)0eD>w2JsmQ9I`h5WB8I!8J)O)9> zMR*{qt~L;Ky#Ij(kPjwFVLkZP$oX(=tU4?8Z%rIHif4}AR889qiW zdb%54bqP0d>05&Qu1j%+`P&%)sByFeKr!0%w!{S`b0pUfvk{9QnAh}=|)oEcv~NfDTsLE%xHO4J=9wGR)s42%+^Xlm^6jxdgJ`E+bIVQ~Bt zVKY_AHba#y`6#wLeLjZ-ffFMku@qK^j~yltKCdL>H);&V?729GOX7Cc9r-zo*PkL| zk59+pi^YPQ2Z@lK_t1s~?7YXNPUFsp+bxOnd`3{q0;t-l>A`$k^fQ~94K-VrVNjl= z>*6l4LxR>h3{l(=7IC@NB%M~15HOx|vGLN>+NBaB^iyCa#69!La%h#ri4IXm{LQ(c z_+bbX^rbB)utM0pkYex4iAA=qS2G^p43qYheSW^A2$PG{rw z4T0>ffK?ge=@^Z~9@-sSDQZb9CaM<&`ObGIc7x9VoX~H{;!k0FQ;z-eDZ}bx=YAMq z=9e75Tz)^{0*5Y^rSpws4QsidRJy>yzz{H4=S&`eF24Zkw1D?;B%`LFOM-JTE>USu z5*`&Bw_AkhJ=`{-vfSTE;JXDUn*HV~gN15zUF6u4nOuxln}=Ka^)lhD zx(g$%S)@S^1&b+rfn*yUiLl^zP##JeG*b=5`uk+S1SR5()xI*n4lvwvnAZ@8VO74z z=aL>Dq*(a$Mek*72Ai?tbd_vmz}kb|PW5qK*`wW+ON;xPsOmLo+l{1|$GD7ItaVFP z*7On6H^qI1hosjXU}1DAEst><=Ct)Tk@;B{A z@b^T_HTAp0FP8v6-mrkE>+5)GOWXTo+bT8x6$Hc69IMY;6Ix%k)7yIW!Iiwt7Z#Pz z<(ne_ChWDl+}zU-2`sU+2Ft~3c%ApO;|uh!uX)wvDe22a+KTE`ckI=`CpG&QX3!7w zIs?JU5T7II@XRqp+|46U1uztPXFgmauH;h2o)9L!o2;W3SiZgoJ_)HI1h4mcH+8YM z>;<|)Z{rSG4CGSl=fa+|mFFCpyB7Az7Kxf|Oq7@Or5y2EDX~9~Ix;?-&+dP*Ub&r* zB^yVU$f~Y3R%U&RdjNjzkX5%>3Ga04wc~1Erwgb$Z&Oz=7T@T>zJdIjY5MR0J`uxp zBg(;5xaXkK{IF!@L+!u7TtFRa1eS$1FeaPy`Dx_ zz@<q{*<2F|!lcyRKkM24NplPO!n*)+zKVFtDFD$l@^>1KLnHR)8k-qfd7 zu;N}1vxe2R{hU>S@oYdx!0& z{G#H?-R1i$T=0!XRu_Sx<&yA>$8g9X4>{!^7T<32z^3p~r6h5YS`U^4jC}i}_4CdO zJ+ITlLbp)Kg3x2F4=p&c`yREC)F(%rKe~u+s9%K5$gD5IQC}6AsL%t3)1i`6*?eN0 z6W0;_U)`UWb|;1}J_CJA&`0{YzHtl$Kzo~>Sd_4TH=G)X3LD(n)p98TRIiA&{J@+M zA{((HhfJh$%_6h2Qxw2?c%&lAKoDR-py>G*wvE!MgW0O;ZH&?q^9MF-i+jkTrv141 zaXj8UaRu$jpxr<%>m!UB{acjqPSXuYODXGgu*w*ya`@FJv9!t?kU?7C1ZRfBs3~YRsn<(Vgm-Tor(7-Kk!o8gp=`nmY zgby4^ZHIR;1AM zzpgp;JKSO#UF$g8@@$P{-uiNc$Fejo1FSuV*^nJ>A2c41gcku@5Lj&gzZnAefIeFaJc{KI7FRg zZ~TpA!v56f3c(701o^Wwv`favU!@lX+|R_NbbaNEwdd{%C!m z{BUlR(GJaAPVHWEkR9a zC5GjuXwC~_q-Tw$DgO*BF%>#*nA#t8m@}&O>29+Pc+U>3aCO8wjg}ZYY)~ho2Y|(& ztX&`27%z9;=yp#PKe@$x7_>J8c2c7TJo|A{`6TRmD$hN0xc^*BH8M&3rigBCgymFU z=z)q25x&>+kxJ zC=JXoF0pGc2&|VPJ~d!7tQMW^v=baY-xL}(zQ&cNZxX?vCkMnvQv-FZ0i(AsLl+B_ zFeNs8KVQwt12pi-d)2o)(rf6N%e)&y1vJE=L6e|AhT_>mD!xb@Gce`5s5+(~89Xzi z<nNy#<65t*NtgR@f_mO+dtatHKFafv z!g85Kd^PTd(QNYDHv`7n7ssL==*{(hiAd=faOf6h9`)Y3xi|G*FYxO?bC9PLCLXzk zi=Bv4HoiQ!#aM^l;=WiGbZh4gz%XqK6yy7*rGfhb3I*Lq$W3E?cCGRLHF7fWn8lEI z(h$hg$z21ncO*@b2Hx_yyEC~DGTwIitWaEvRi-l zZu*n|Lr1g=$VI9!DvyHVN}WUGPFRj)+lBUpD8(TzCH2n-a=6oBxwK1caa_Z0(_N^A zBgf&G{><+94;!M7am5X-x4if!=%Q_)?e5I_CzaX?3H-+OE(#MMl(6!ykJLi*?r{6Z z*ZS?g(D7GDr+k<8GCrAJEQ)Xx*Ncy~UPpREp8M&?NX1=wRa1RS0plG)Wv2b`W`XE= zt<->dMX%F)iSSVt7zMwX)3)c}o;@sFe8;$ru|nS~a9yNUk#}R9N|ao9eH<2(jbePy zUojCoLw-23pJ?3f6JNZxrB{@5tZ_1nkP+h$anB9>o|>J-enX;k&G`-XEu~$NvOLt< zXey*u85#r6SBw{6t=g%iaO@2ckSpMOyfP`~(LGuNRhn9R&ka`eL``~6RUs_h>I{vC zP0Ffa(^QQ*h+5m-K#P+G0p(6ms@6V)&(p?=n0ccXt?lV4HER>rtS zlux!Nxm(J3Q&(Ia(~9ydaS6;*5g5U_vbu3?@hypxqxI))x(V+Tqrp4$P8ywc1^9(1 zvv)LJryeO^zI=*7Oyq(y6%#+k;bWXmYL-5?=}ErJbNN|GImoR2lZd6Ie(gn)?W^u* zVzz<22h8&t+Iwmvd8#G8{Fe*Mbn4?+_vH9d?doLih5CsJi-vi~XF&J|0&!*D?2I`{ z*zOTi(cc&-^3>+~WLxlDZn;eCtql9L^Z-Ti#eEKp@EP z`BWLG!kGXb^>rJUA%+xs?8oJ*0RRlI^f4Zxc|Sj?6&C{e1q~(54M@+?8n;Ds$-mo2 zd)*ev)aE^msy=eP6mUem^4_n@k98nZud&&=P`MzM7d%s!(1&#!m}z8VJI?;qjQyI? zEDDO6ujR-IzI_#TK8OcaCvHMK{7mhoTDNCIB?sEWxA&bN{u%zsmq7zm8aseY-#wWq zTs>w7_-N@s0EI)#wEz+qnOT3hsLgoR5QsbqZw@Vy`dnx#K(}iUVTE5wVWD&1CB%(v zahXmFyGGYf0eM0Kl}Z(Vy7oGwB{cDV0dA>Q@*p{=^nDN)(~S(psIC~}IssuvUmMd+ zEO_fi#iYspc#UnMN}gVSUHJe8pcefSoJHo7@ynNAa}Qm*J7p;V=NUQb9&WR)sFK=2 z=ye|on;B8ux%u7Ip?rT)HgIFj`yyda1y;r;P;&GgV{4^lM7mEC^~lTC-fMEWT^^c) z0A1>Qp3tQ+;hd7DNapkbLWF2Ksu_l#7+SjB137ALp5jQh7RM)!jraLKR27s>ki!q~ zJ*%}ov-JxK2%ek|A^`7}3n;36jKYZw=g#hPC2HO7r(Y;D7nT^_FK@$Wmq|4oq2_el zbU;=uI9gCR|$Fbt=aC zwp3UhHSEC_6-7}x7Q@!h*@i`TwHSesD?96mTMM96<=}EP))?6m^;F2za;^OW^N7!v zPdVG>kz%;lwXA1q@#nu_QQU{Qdo3NP_7@Eyz}cr?P$jgs34R?-(yU1%P*dAz4u^6# zE0Wtf#V_k7+}Bu#vMcpK`<}WPa`86ZD2s6u=|mCe$rP~?%X`uKju?(6)%elX<&zte zHDo6#bq*Dqi|_ksWeCH;l1{15TV7amMX1{v(^`_{rRn6g$tnY={KJPD?QY-On5XO6 zrmxK(Vh|2y8ZG7ToW|i>=X`o(55|8i07qLn`A8r5vGDa9lJ!_&hZy+Y=cYiSbYS+G zGp+U7A0~3~G@&GD;wX?Q_xUFuu-9kcuOE9H6jnVEO}$3U zdEjJ3{%4k*2JL&);M>or!4(EJ_x?3G=e4*ff8TSGjO6~&Op zt8FJt6+FHTY|m|5Y#&`pV9nSIE5MTww$`KT?(eJ9p{~!*ck35TWWG7{^*HqE@YRP? z*OjiJH(LFfN2?U`XmmeUML49ZH~WqxtP9nE`H!eTCrEcChiz=*nkM{2Zw}N29>2y5 z2j(6}5d{Z`bt%Om2iZ$RwMsvG?B&;(ZQn@kd#(+)LO|Uo9J(iWBA*)fUcKci=`TwL8!{1A6d%BV8nXRcje23 zYa{NE_V;AdjVEHv^X2f7rimE+GNC0K1;Cf7LOh0X^|7by;i#E9oZ<~UA9Yx0_g9lhCv3N0QV(RIQ5RRwg}g!eDw!5?9e?vUZBk z!^Mp&Wf=QN%!gMvKh~zYHBLbWP2%K{sIAWI=-BF9*urq|iYOnk?OlC?Bzw%Ku zeRo2b{p;1S@po&N(V8mTivHwnf9C73LcK>AgeOc4A!H}zfak-_@LoU54oE7ch<7#( z%!0Z&tjDY5AYH1E8SB^ACkQJeM~QTFPkcq>a?qO8V=D-Sc}@G3 z#1i!;brlc1iVY*VEp~EBV)-YNz`71*3Z4%0-v}6wA5X&|?0os*q_(vj&voOIMJ;J% zqi{5k8(r360#2(x!rSi>KYR0GwF=JB$B_22>zFFU-k8JOOU8v93TGuz0r|7#Jhi+v z7L@CU^Kk0W>f+k>0OB&170(uUK zYVeRmPX_?9uS#W$7kGzfyKXgg^-Z;$-!ry@Z`3LHEEWuX7Dw0D3+hiy^r^d0Tf(jJ z%tv+oEB%@2lAQubr-b~>79~nA5w~fdyNhK$YE-4ZTIJe<^%e-(uCZtVcYno z#=&gz2@bE^c8>0K{N$;lC9z#awbyBU3E~{)SMnH_Bb5tz;{Iec*w&U!_9IJl$M8l5 zwArJ;OXbeclT(4i3jP864_5f&2+@(<4?#L2gB}Iq_v>LE5jtLnuH0`lYQ3Bgi~2q+ zRhFS|2i-mUi(NVDFoAdaK<@u&5pf|;Epd4j)>Xjk}BrePHD^dd4AQ5Oho3>2(C`To` zGdT%fz1HPTX3--GF4!{E$yU3>4f*Iw(h-b=H_vYN~4zUs!) z2hr!`+DzJ)O(+B6r?2WtK$WWn_ z_kaV%P&YqQxFC;>yh(e)*n_~D$hvL!;|E3Xy7e8Z-$LNK3co_hX8#fC-I= zWT62Be(YPvb?ip=@uVKct*JUr4OQ4g5mz~NDZe`q!|6Ygdn^>o1BvQ*i{#1dzR3o-(Ru6&h$kwPq(em#G-H(Yk57R|rX+iMqDU&CQsC66m<#iMz zVVLJ#9k3dshMMDwX+A7rTC3t>8+wNHpD-H9Z-S03l@v_D-rTp+VbCJjhzyEm9q&xI zM_n1uY^Ic10^a1vQ|g(jQxTaedo@QcUCz4(ER2;#{a?sPAFnUJ9WP5jd~hj3h}NE$ z#?R0pcV0Blmnhbsu2E30X6(>JCl>7pgO@ALvS1)RASpf}aiQt4kG%<;;%Ry%s-c>= zyP(ae@yifCqGG9zS9W)?dp<6@&jtw6jo6GzszG(<1wJH5)7#An8eU7%Mr`L2SmcTe zf|W%ZQa#FRW^kx`B9x^eIXBsamR-m75D4_zdE)B;G1o$O$Erq9mgMi2;^{hE7<7Qe66+9>DJ4nQhFlr>fc5Nwuqv;r{Ztu{mc-Dx1!ja0^a=4UR z(MI)%T-3Up$m4_o!J42-37h+@Mzw3v<4HLV`{IwEMs;?8E!;4JhM~QSXPg|9${uHx zea~P$<;5mCsDjX&q4{A{fAoL$#b!49eIC9|1DrPai^AR?TTYg1wvZ$A)gY4j$?aPxf!sd)3rqY+=VhiBbtn?aZrLWb$EQv1P}k2m7^RzMqOM%<2A;R#+p6Z^D)~4i z=XAJu9!NzQ)D@2OE^Xei`6SXN^IOaBlfiT;Fe~YKdLZMyM`as8LavZt+*0=j7q~Ndzp$|}L>fZSnb-Ol94I`HuwZ!!&1@A3{`1o!@<~Vmy zAKxx1qrO$#kr&$mw4mX1UgC%>-2x49KwH|&&Bkiu81sa3t8J{pW{e)8ORg$DO}bxv zvcEp4oL6@ielT)yg34j%Fw)qUP_8MK{A6GP!%}}SeU;C6`qA6}J9N$Q#MlgItZFz} zsMZS0!vuGJ9ae?5fb7~|$Y#3SI`pL`lS|(2iSa(Qbr6YRq7;CXsBzbqQ<^B8zFtAP zS}`bRaZw3X4L=ZIW27%4q%b`ovzpdV;^+J!n$S>rS1{$>_AH@N!2&1hOMnt={P>~# zW&0P8i4oMv#R$-l#JlqQZqKIHMzX}|^*>cEqKv@&^}DNB9&@R{4)8jbItQGp_IHO< zg#iK=XL|}RReken>JAy#@hMt{xcJ_U=6Je)tJ3WZrzzu?EF0FNCK_2MvYLJyo`~>G zowgz8Hc7yvx(k`gQN1auc^^HSJNP8))B{&lykFpj$M9NjKBC|Y&-=p)t}B#8{qFoA5MFQMRuS+M0Tl4TGua0Bj$c~ z(#A*q0Ws0O7RW}-NcTGM1tEK-*$jc1Xl;XqsHctN$`Tf|bt34TosmuitfCkUbwLC{ z8(8%Yr|z%rdJYY)0dd;=;3CmRZpU(Ga+2V+P{4;#<{|$kVMTUApqHV+X-|I3$YdVYzl8&7N7sf~m8Wownw=m8Aa`{5tgc4x8kkJT zp~Buc`OD8He?IWBeCuI?2d{b8Sxe4)_2wI|llbhu4@(8GC$U2S^>so!x9BK2Jl1Ui zF|*NJIqe#>9%SkEZ4tNOX5g)5kB5W+_^Z(97I#WcYBxAJ|F$hXJ3d2!s!OTxZ4EP} zCO5LVvN(q}NsA=4(4m{*YO=sFUIuZE*#Nv>_Iv@|x_9kcpq$wzRvaK+ zbjR|>G9cJ3sl}(>si-qPn;GNEFu-qLO(+`dRn2*-=S2yx?+NPtJW(TZBcdL#bEi*1=jv28r@>g>vP76T--zq`OE zVGb{Hl?6{8#b*#Hp1Dtv*sm=x>=6YLF>JWuZwWOddxUo>@PeH$B}A5$uphrZB*-430e=?nbX^Fy82(}_q;O=w>l?jh#hx-}Id7q^y~gYubL^83{_7Af2Q`-t{ry3p7? zZm#3S^CE4Jo8WG?s9RqnPC1Nr@tKnNou!jVH6~#4Une+Zpme&C+RotU_#(J?IO)Y+ zg?T!t?Pr7MK@Y*YFh+B6)yl7sr&#zMzzX*s`{hHFzP$&7dy}}6RL;Ls$UFmt`D)I4 zssRTc&zwaNLLPt`Kq1#0Pk7$)GbVMEsyl0;l-ND?+r(j#1`CZGcE#0Q^Z!uRQM#Kgo6SHP=1=-tJVd z1dn^J0zl$3mD(#ZJEXUBqMS_Sz+APitosm9^z-^-=aCg#0%GP&mG--+v*^5`&uo>J zB{Sk3-W2(P1gwG-Wahe0Ut1n!N>9E17u8B1-cHCtm zTx##BTZLue7&(u1xH-2uP+kxp)hYT_E_MqyrWfzh3-&p>#jIVf0jjVDTfe-BZ`ka_ z4;OOT<+IW#GA83PXCxCCQUfw^;k>;PX~X!?3fD!Bvgct3)2D*d$V1;@-Yf*r3|4l~ zgk^&@e#Gm(p>bT8h%Rlz#ZK*U^A2aG>{TefaH4o8A7vZBjjGtIo4HLCknYv{HF>B=H)qJ$2ddU-32s z{C|Nknu@m+2OsLhNATB0Ab@F5i2Ku}_q}xK0WHqar-+5NFFDAiecb@mtq~yXWjv|H zV5WXCc;~j`)9d-GaNpFHHXMQ7xQdg5wU_=AHkJ2r>eeJG7WLlsCn3>ONOyhOp__px z-XVox?qvy9`LG{&^q|%(L|d;_XBP z+K82WZ^~SRDZw`3R+E)F0$l`kN9(BP4h$&$x3x3NZalIG{x=fkX511`c~h8m%UN&m zqMBR7@r3<4q@Si5>Yc{wOi*1Q!5vMmqOd<~o|t68=z?_V%aM$c>q!u00s@~LB;A%L zUnlJh_oY01aVZy1pWr};7pl)_GF*R>bR9UFR1*5P6(%2c?9)mt7RH~0QG>T;=C0+% z^J;GrHzfd#M-zvhp_CU(b_@G{c0P&kEb_Y8s)ZS~R7ZAd$;CyzlN!j7F+7abS5Zu` zR#6I8c#`sfT6pAF5c=WH_3yar$CSo7K*$eMSwdOO8<{#;-8GxUsXu&pfWcw5JLElO z$}I#9%zlkPY-;G0Y9$_+tb#4nIt~ze;O?6zWNZ8vM-e->WfQSWFB&l%w8-26*EM*h zL~sI-B(^ib*2b5Yw6nf_2P%i!`I+=V4erhYNBGXrQ>s1GjrL?wfgiaNcxrB$U-?x+ z9MUhP?Ud)+GQ2kL#1FHRn?j-S+O-5~_-{_ln?-E4m9B*VCo z7st_;;Kt{tTyC&W<>vj`blq7^cU=MqE5EwvaZBo>gF&79d{A%6qNFK*=%|W%q&8sJ1pu|DlAy!v``QqItZRaVN$%K&d=j5~ zW`r+gTc42Ep*g%ijySX%7Dm)czTZ-+kTY`tg|Rp%t+0(JyQh8B9DW8gwpy}Zrk*aI z*v$;uOwCJ-@(L0`M^@u6*Nl{_eJ9(pLz2L_W-p(+}Ut1pcaCH z$2|jRHrt^~qp@g?_Rs>9_73z$n*|6Wz^8Q<-k!t5V$~__JJYeW8RdMFrlNUT;|OHv zu(TuA6esk^lO^QS11ktBDXj-BEc3%Z>w;Gx1vB8xiD9>R=!DZ}tXt_+jUx_&jIUgg zU;YHQJ-%AvX?v~`0p{oLcFrCYRZdfJw`3(={5-wXvY*1wtvylIfvAQ(y?6C>cvKHm zH=4H`UFLu$U`m;w*QY)TaA|G0eRT$qH{23%p2jqrs82_GE^NP5T8eE9P=FE$JcR&a z*a-yVG!9K7mAXL6Xug8z-Z)?En+I7PolzNL=PNiG1@pt|o4k;5JO?#7gkKLN=6CNw zpC5NF-8#M(40nI~b$}(i_MJiQUP%*>qF!5c*s&2)e5 z{Z9T&6zTd>tVj9HG>038P|Q)cX5)L&8CR$el0?G7Ar8^ zT1|gQ#t+T-LO8c@9c_2UmdjQ5NnWNX5W3J#fz@q>o*!-ZT8LtYE+h}qE$}?S<4<3G z_A2UeRJC?*Zdao~S`>b*$c$Xzviqd2&BQmGjNxDr)M-yIoRNm2b4G(p`l}~w1kX++ zz9?o2i4Kv~mfiz}ax$@jD3d6)6{zagJ?D?o^RqUN7rnXS2d35@qxH<$!ltRwi>UaZ z){Ykw>Jy#w9O7c^tmXy3z23Q7AIL^-Ic20`6T!%m)S4Z5ke}bb2&3X=8hCfjpeA&h zUM`*|vEXzr$h$a_6$un{4dqa2*eOK2Xyq&y=v4^XoUb`0F$uqs)GqmF`30C1|yuoFz!Pc@S zH;opYS$A?pt*s}}q^d0qMFH^zb1!@i`2?=vGfZ)tK3=m)vASU?ShAj~WMa{42^!}I z5`s`(f2Cb)+;rEE1*euUN`dkvGw#7S*t(|8raJxuA~v<58@W#-T=q!D_Y&`Y%gYcr zeRf6c1Bx!Kga*1~;&9s6LlU{u7J)yT zuw|=Djk~NaYeHm%_X^->s;Qcn-RgN0NO*(WK1eR0esJcV+Tcu6x^&o=H->5cb|c5r zGk0w8D40Rrqvk*-`zS;lcN9=*q*b;6 ztz$rej7nUk>0-hnxnhElaoqkYVrFYuSl7ab^VuvkWd*7am0<2k;AvLX)M$zYHJbv$ z%@Nve9Qu9nn_$@-?=&*C{5OLIc^RTOu0mvZH?my{nZ;c!6~amMMvCJpbjtuJ?{yH2$^O!Lk}94WKhAyC4! zYrgkYjkiC5n4H&q)^%2l+VlapYr#qmff|6g%0h62-S-@Tcx3@c$25d}PXNe~e1`Ne zhm6Zpb)T%=9DRClhmvR9Tt1A6Qqgia3+|DahA5!%ulRWp$G!L-=PTN8Sk_$ljmsO#pwyo8dOedy)sxqHZC$(=bPkah6H0Y zH>Q_bW>bYRITf9f0gIVp94q>Fp)4by$+Fi-;<^AAhF@yG{FNs6k3m&6OgPLE132Ld)Scr2h@MnD2DM-#n@eSBhOhOgua z#70Ov9OKscqo4Wb*1ua#gT?Z}0YJz-a;9Gp1VAZ~>VNQ_(v%*fxgnG?0y9kLeladG zx_A7WOB08_-$TxQX{4iJRh=SJ^9R=+px&l9S;%?I6`5qSQ7L+6`!evWt(Ukp8=l>F za>b$Hv-kF?mh!*~f32SnbT!qJ`N|50bL(-tr#$*_RAGx5=-O17$1b;x(0eiASLTII z^B4)vEnNH5b8xWgWi=hY&?Ay6cUrC2?wtma1HEO?@O!+O-l+vMqYH|5w}jr^%_n%1 z@kp^DYnYDvDXF~0Ku&78)jhP|3%>OMlFOj$Lq`l~n#OKyDe9T$NF3SY-p@as9QYcE znbbAQx)I_wDBknh)r!eX^%mBFtv$%$dLiQ&8%p*fj z*fhke20+<9Lp-2Mr;XS67lL=ZzgKKd7`LhmLMrl)RTaDdL95&i4RG1k9-FX@+d$} zF9$RN9WNNl)luFj=14FeK|3eHvqZo+Qo3FXOC zdKDM9xs8GgZBGv>$t36qac>ZT$Ojdt@mJFWjvauVOQ9)EHFM4ITyI2kV)StRk(p3# z5M|)dF(KIH<#fS#Kks!jsPpaygBe#z(3$CVTqvqB@vw6O=Gw|P`N^M2uz^=`#H(Q# z)ctIYp_!jPr8aRrrdkbT{ee5F@` zw+43%U-%vPndU5SP}VCr7m2gsyK8O&m9UW0=~M!!2e#YrTIe-hq@nuj0Z$8rCoN=+ z*Abf5#JCPVkjW9E;56_5kcl zr%gwcM@vD)GD#I;P3(Y-i{NN?9FWu4YcSD?=<;oUyN~~Ht$2`~8=3`2>6DQ*Ntx7dxHI|zJ*#VAcYp~l3Y<#Mv$q&f#nov?U?d<|_TfB^xr`$*;?KPPGMc3F)Cbq@i1!{5E z+DOnd4@?QUDelGSGIhH+XI<(YOe^(5aA6gKv!dli7Hx(Odk8Rl7 zbakE77dF((ZXPivqn~{+4p$Q{z0jQ2bYSDZ-BZGiZyWkRL~^S;oTj3X`8Qw4NAi-E z6Ri>Oi%zinuyk=TNBdM>{xOESyyk-s?RE3`;zYr z}nL@&oxGg5;R3CNbm zY|dYn4Wx4Sx(QM^d3nqv=6_-pRMDwAhU6?>1DlL_O0imbQW1FI%Lp(lzd8?M>#ISKyk$EPIWnhvJn z{A1L}Tl;b6jSVg0HjubY7LS#I%KZi*qjYXPy#oe!53-ptC+iuY$+aJNNqZ(v#D3u; zk>_`vZf%>d$kCeiwYk$gh1mv9PlLYR5zwoEGV94=AO5;ZZlp}Znqr(lMphX*87>$W zk`{Q4@0>|rlK#VpwQMTOjSuOP^7rnt;{M2ye1eD;>k2d{DE;(#n3Fs+7DBj;pO}0!}yHOzAe^MnW-S;S<^;OeC(l!VFF@o z=FC%8~3PXf1|1ku z=hS6Nw{B>K`VL7h{E{kxQ%m@>U|see=sRe+F}pWm$Lhjz5Sy+n)bl6nYf9!>z2yQj zyu8EZnxIgN@gWLQ@CmVL{hH@kwl#KVO{<&x!eD*y3pb~&&z2Fx#ZEh}OvY-u^_<`# zecvdiudiyIR$=kb3t{{H7*YiG-uwP9t_WGeEC=7!YGrp)L8w9_!7uauqq?zh%8$eA zn?(;jcY2E2`HhN|z3ccn4&ZF3%49CP_oh<5`}-AJMd-ryGpp4XObZdi7J%ZbS~)3J zbgh$;1vGhLHEd(Jmsww4YI!U(R_*58c)sdzLpTYW{zPk%3Zi!osT6&;qSYQ7zV1%k z)vd!WnT()3TS9fsx&Gmi1XR=ot#?yG;(Ls_@(rdpNHLbp#zX&X6`v;2$g|C+1h3en z!w7t&o6Ft_?r3K6@*fo_Hz93br4{_yG|+FPHe}x{dgdx8^SW4%UN(P;W$}wVd;w`O zY=1UMT5T=EI>C&Ki#tHaqy-Z0Qwse`9E82?S7S=sR%j*I@yUTkzCmKFcaTxDCd)be z$EnuKvF4eKA6jHejoDw{ZzT>(fOr)m=VrXBStJZo_SQygV(j|}T{sf;rKc3Gk&|2W z-yKd~_8QO#nCJU5Rhf;+Yd!h7Y3apeMn*=8jazMiS60Rkqwfq+ySw(s2&1~4jEt9R zCjR?8i$-Km+Il<+#n$6Wmi-y>2V2i2wC)42==&RnbI!Kc?cE`LcjPTQ^Pgx7#xP9ad!p1*K5MR-&k3`54V1$XtI?QFXiH^r6egYb|DHqlq+hN&e^+@crP={^?O|P*6w0wnvX5w zbyji)k5$4Sd|r!x_%fJbOCknmQGTGTXy)u&?VSbv$Z^bjB5TTGn2q-MqCqY1(+dMkSQ~g_* zbE%Qwuk65KX(RP=udLk;0|UeHST)il4y+%?&d$O;94ECbXT0Px&Y(P?aWSI6>CjqG zz`WN5NIXdVeG?^@?J~i=GQ)n1V5%%DNd4fWeBW|wN}xx1v7x_3e0}3QbYFlbiCZge zlY&PZy&&{^WM}n&3E6w`=KR9O>hzVj!AFGAx3A6%wyQh0wFa4!uukGr2AX?WgO?w1 z@ccR~0`5F5R#pSwAOo?^#Bn7FoaSCj2o&Ac@cR@0V%7aB$NKA~B-Gn#RxbnFU_t?t zNTN(c4(ia zEkAVGi>-S{et-TijGTdPNpb%;=MY0}qow?ase`{=aZveN68c;u>6++`4fB1a* zS@%c6t^a=c|M`_ZZW>p2q;mP-*_G4-_x?Vp?(&)IUtOr5$wco3aL*SPuE`->e}WKz zZelS*Lu4&GVY)esP|GhQL#hpZ_BEc8HAF)1wZ;{Hfo=tEU8 z$=l>`W?sFAV@9-Pf@9yAw|n=r=@u6j7NQTfs`h%E!xMS$zxv*}1;^>?U+i&lxJyMN z@ej$8)|k<<@;ykt2!K>RL3kbf&#;o8Z)1A;dg0o2SMC3F2Edf_X{BNs8 zUp@qOW;L>ZI1YT558)GM;HcZdlwpC1DyGne#TtjMN+ zIFMPF18ERSlU0un1?anSaTNb>Dt@^d2N%9awTGAY@Q8u`|332n{;t^E)i|7gtSg$m zoQ!bFv0qhw|HU5u`~SWAlSZ05z(c5g>bqO@@$w<;iy8fW1m@M#ik1Ne5~&ozv@LKo zkcywJ{^ox>^p+t-tkKe|IpV)h@4KAe8mQ+_TkX>^f1p%@^)} zb`6C>K9l@5@&mk5V(hO(sj&Y6VHCJZ@5(%kC)RoGVok558ve5{zbig#-`;*q zxophY?4YFJPy4->LgycuVQs9-weaQf&gCTf;;N*56;u8H+|B;l4kRwuqLS&=_$es_ zuK%Mif2e;0umw^#yDtra^x7*soqu-wco+@e8eXPeTC(Ps!VHD~Yyx{fngv+J3|tMD z+@f5%=6{H`eRdr%gpd7}E*H;}gN!QH-wK@nYIpy01^HhZfQ-Jg%hjKeM1=So%`X4K zF5VVvybY|qAfmV{>oXKFSMzsg{I9=za5d=9uPpfg8}xr*`~Tmd|NniZ$NZsS-b?*v zw>it9)Ovz{%V<9>^e_t#C8`R#}>V&b)HPn4qSNsD055UQFSSq;J=*i z{<3}lCu8L!`xLM&&Y%2=9Z9c@i{yiI0({y~&3DrG3kAu~UzN-4Vk(flVhBl+mr`VJ z7iGZy+l=(as4J_LTZ_6h*mmwp)Shl?*!9kVGN0`BW!JLJjGL|5GQTVbWy-Bd7`y*{ zvtS#0=?_S)IbHc96iGt>yv%5!ZqSY|LYbA(_=E;0?Yi9WW&`_B4FlY0eo@hu(7)?)h$)d=n!O?P(WUQ7{c9k%8vlXkMYzc}9fa@u)aK&`rM7s9L;~+>p&y@BFFY z)=T{)L1%f?<^)^AS*ebEq6m%4?&PD&8K?LRnJC7)O+VxO8@(>jV39Dr5U*tb_r>V4 zRV86v$9{|F*VSvQVj_ddo=60QJVRDH7i}r!n}p;8B@w*&NCZ$)`lvOODnbz1^#q{& z*;1KM{^xMLRJq(xB`M|b5>GGp)CbQJ1Ik?uGS%hzoJ%~TaJx2N5jW>=d~v9~`a<=X z#!ED>^US&QHZo?trv|dhOq`rQJ5ExSO06Ov!zBe&BU8V7Y0{g(TJ5lWa~uh7t*~ln zs|Bc9bbCu~Nlsc@lLMtvoD3ITgY}qRJJsM`A3mof5f2cpTmrLlcJJpIFVPjgyKvWT zZp6!ZKs5ep-k&|x4It-mxOP>o+-uSv)Suz)tS2agOva;6kzNB{vlgXBt4iv02;(aG zdX2h97@O^US1c!o$>ep-8prB_nc_#=#nm3__3lbl+t&tCbako^MiP>&?wV(xGb7$r zhi**5I?Fl%2w?l5Le!4X(q!(kGtiMe=aTu`$>iZC7*D%$lJcl&0Zk~fzp+;hW_o#8 zm?#{^?+kE=!#K>lG{%5p)8*d6^U3=R+AlkV(UB^7N0z~&wLPAizcN3w_C$Pka~TV4 z8f{cH=TwvBp0K9~2C2gE#g+ba4)c9J%`zvQzEf@wYR?NaRtCU9v-kRjss8Ck5e+GtfsqMwLVN*vqzuq z?E=@&VRa(cOTIZ#o4w;>$lYsL<1llM9!NDL(X6$GgX0yJyNU5*njxCyM-FBqX%LO< zXa*gbX&{GngEZc>oTIZziaI>~MOZrkMH6bBs?)q@hR9N#%~h(k2D(OcSBjrD zjeU85(VXl#ZLTH~41I0{D5|ixJ4AH8asJR8dd7&dee)`U2WmN1Ds`V(d%-1srcmSY zSg8qwa=laTY|mXPqm31EKPKBqo;PKCGzC{UKYYQ#X5o3|b7 zMVgkASlC?lrWsCAThUT24SQ->3}C}V&svM<&>o$FUlqZh7XY{zJ?%01s|*aMl_9Am z&;3thwe@s;GK)T{w9Xro46wB!XVpR7h9#}~s?RTbKUn`x`~G#PtQxNDDO%r^!@&M!a zL5mM7t2c(&{w4@4sB?Ie9^ilS7}+v!pH-#N*1!Lc#oS)3@-U!sGL0}Oj8>LrXDFFqxWtpuyPKBH%yJ@{y9~?vcIkV-|t>s!| zLv&!TI&O_;0Llsgi}_bX@Eq;t7j<`d`h?)@BbmtN99T~Ih`oSL$YG0jaXiX&p}; zqo`|$a27!PQ&6#3P6Kp>q0}t=4ol_E)Bsim1T&*nq2U-Rt57id6|47oN)Pm>+n4B{ zImWsrY{YxCjXuoK_c`6LS`PFy%e1V%i7K=+oW{S&F^==!G6{26&S#ix^Sa8FV@vCt z`n6x#%)aCvSwY@1X2%P^HIs8?DGB z>-kq7&uDYECavp4Y*E~ZUnvU!OAazFRG2w0WW7YL;t*0rhKVFCk0Xf{EywFr6%T$q z^3{!a)Z|~Amu>n2;Bu@v!knkbg&;|4rh_t8JyO}jEIO#zl*Y-vZ$+}r%W0zYAxL4t zB2sgYCjSs60H=od`6AfddoWARadR-FkiVGK>Y7b-?e|Y3QgxUm0+1B>M=RQS zDo}=XUQ64pyPMA49mItmKI8%{hw}ho<^DSfLFzyWqs&*Yitw^n(ln2i zZ;v_Nt=J;Y6)~E5L(HB)*4i2u^Ls@jw5zT0C#`JUR6SJ=NtNl^9eQi8B>-zRnOT!3 zhhy%uc#%wIVDA{BRE>){KXt6pxM^I~9({no+A<-(v~UmaTt{t9&}n&1(*mRhUbo&P z^!;ikJze#j$(jPS2h$~n*)Rrv`-K~>MQ^FO)bq^6!?MZ%vjS3yxh( z*w_!noF6X5mwv*Y;C_e%^V`lkAMa!*FH~N`3ARXzc5e|jUEGZEOg4Qs6K8)^F<~9y zxH{lpmmz=#yZcB+PgXASG}O)Q_p$vZ{tmW;bXA-Xf@i!a1fB*EQu2gNx$nIWXHcfC z)tL=c3mh>EI|RJnfZ)ACI0{tVzTNJHgxk-DXky0KR=~)9=0;?9d6<8BEOpaCr=hL* z?L2Ki<5K0+S1oJaEy1iqoTXPgXRWQtUC~aI02`2`0Onayz3yY6%+UdcPrNWBtvk#GXM9p&J}57uvmKj1 zV=JPF9L`QQ^?SWss(=2X)B<6h{v1rcY>i8ol7lgj$ENyKVadbXtJnr|mobIUVZ?H^ zKR;}^%QM6(@P`5kGv3WN=8*RA=Ah1|3%ALw7wW(^gsrwZghF;F&`RAT8Bj&opB>p% zBhMcfderQom+;yBCEv^I<6J&2ZyTS)TBmkExaC_! z3Mim+kmKg`V43J<{v{+Lntg+Sg6X7SUl{V`yPqLmhJd^s)SP}dfZB`WaIq&*cB`H# zdA-U(Vy5Um3o1rfzH@xcAM&5)>xYjn&(U}1;_OzNu97CX?zxzOBeuZ}Zm)WCvyHxu zmyHy5q7I^>2VYj>CoedN+(%CpSPbw{~zzM?<92QU(@}<7^P>sWe>HP-c1y;*+*)}ahpBe zoPe=Q-1Ec?#M~JkcX97nsp(^=AP38-nbOSSILyh;`M2N^B0-bhN;;iPov_*-+Fz z`bWl&VTNKV&IYZ|aL@~Yg_gvq)gn^JbW)q6GPW|qbg({h$D;_$0>Eo^eQDF891XSV z>SqlS_cl9J2QoA}HINb$ha1zXYeP<6W|!pJuw=eRRuj%Z(~P5zn(ognMaA~+dh)(o<~1lxKs=Tq4=r2_+IQT6P_CcPd!Xx`t3E0!xdG> zvh@EmM}Jr2(%kv5Q9C(b#q#9Ff83xqCl-g&=g8*W;*8TCwLRNw#-KA=Mv{>8qx7uv z&DcCc-FJ7pY2y}v4ZAW~sO2iqZVS7~tX1(GDAi*ymZ@c$cJYg>6VXrNu&N>QSP^fJ z<}C_(2H@&+m0zwC4J8VcJLvR|_vN0;M0$3Nm+K`C-TVUMx`Rzbki~+x4OE8M&>^jlG zQz$l?XXCQWg%^T=@)~I7iB_{38D=dAI7qoiaoMVN)P6R_E8>k}* zmpq?}UYwPYk};^3e#m$gAx-GQdQFe=={%jhJ>_6W*a>p+ks+CkC`R*C?P1K@7wX^^ zX`rsYd-aEMrVP!S7RO}SXcpe=-HNP{^6@a&Wfp*To&jrTy0m^`n71g-<_Q^eP^9WP zMMn_|ZS!Hm=I0`(OA}GM2jQ70RqpGR?(NZqY_Is3@YhN3MJ_CT*54uPi`vRpIlD#n zZ{6P$IqxH=UqyCB=M8gZvsSR~HlnelW@?SPzp9QD>VQ=sX9L{z{AF3S&%<4l5T{t1 z*^-~;>{~Z0Kh^tvcrt1j|WKyV;ZW|un>`C8a>w1)5;z|cMbLUx|is@ z#6H8c!Z{8gFCiM^Ff$rJ$5c`Y$pjQ0XUMzd|C>F=tm0pc6HDG$~N0F$hdY5rQX;jQmFhllIo=V%KR z=gl%6`2;?O<6GDYQWk!&0w>)f;4o7pVmOg~n05G|%9QVoD4sJbV3U1?4&9BHS<7l> z`rba#KE>qS_ccd1o+z>C`dmYAdvvzIk|g>VUqdG`u{T^JTo96MTB} z7rKWQI%2+z0#c^>&)$UbT1~zbD0f!yvr26JHPgS};A`?5H=G^ntWl6y07T#;st&n2 z`C0r}#W3i%It~S4!+?vtdKD?`x`9@qI)D$8s}1uXR>1^ls|nl_M+1$172`Rw*#suf zW<DL?jne{fHvH`TG`GR1&(db9s&3gFr zV3asD(}eQ|*LlS|>2k%RLY-RUy(Jco!FQs@aM3YIpBIw&->sU1^$LqLW?9V^4!JWPfY3Ca;nknxX$n=fw{p1B_UKA*g z?!3<*g1HyKao6g8Z393;MVGGe>?xK`tg=1?HcuLi@TGwG@EU-fcC`_ zcMJ6`wuJMUPkXy334>|MyjrIPq3Yyl9%>hWU6uhW;Ov1tk8YJujBXWp+7(lNksY$* zT$nJ9_XLC(RL2+hge?}7yYh^$&#Qtnk&czodkMB9iS<9rv+;kQ)}ONY9QhvrlljP~ zy%Y$O>ypS@5|7^$+D<|L%z?}Wn?-cXgpE`nEC4q*zc&W88n8(wUoO%H8yC?^tz#G7 zerPf1IUM*Bh%QuCq6;qD*nuicmzE>>Di44{Z~@glhwhon z3*#0=A-S3wt&V}4ts!PviM`@Xf#!|4n?_6Kdn-O9_1#nqqEhV46Y8XFNJ)bya;XcB@{K+ z)BjQYO)2#ZDEf4e%0DvW7S-7g!XzIlbi`WxT6846He_L%oQ90LDQw#i>9ysu=j=^o zI#H8ZZaO_=ozB#&l4FE}ZJ5`Rt%}JlX3DZBaw4`>y=?8EoG*6YZT}U3QMMRpI~(wW zH9`aqE`$D#9y8 zE{UUi`d}&xfV$&XH|J=BA>jG*JGLZ;6WhX#&WM{*vrZ!co##qY!u_8YbOWz z{IvPKwz|kRw=i&70>6XIL7plQi8e1h-LdSF|1T~o)n(RXr%I(x{z_Ey)?P2q+kiX$ zy+JEUx&-8cLX@ppQ18Y*jgi<+)g2G1u$3FUs55#l9qZ1rk9^s3mCh#>}61oog{cM zh_w`1<8unp61IkO2e^Y(G>7zK5qJ4m($wQWjFLoq&n>ac#45k?G?lZU=t=Y8gFfAF zFbMlFDAdB^qs(qTpQ+~s#6G~4y_a+otXm|nI!CNF?bbT9Z19|4uTugONzDjUY@2#4 zmoTVU!@4lqXa4oF9T|zNn!l5_`4cE9eP?mmRNv5q;rP=y3j%7G$p<=pxt#;bJ@{%38RXy2@w%UHm z+ysB$_`F<@If~6-u^ADnw2UJ;|`-jx=e2a6_vr42-gS)*-vxN?qC-;6N=C#0WTzl^81 zf)4^4|4Yd{Z4B5<47l2Mc2tVqc=7!rHb&ErZ@dVx)$&Ii?tAg*ZB?P2)*bf_@{6Kh zHnsE<$8zIEYd6G_8>|jM11J>>l#a1nAdO5WvddiUC$$#ik)Iy9espmL5FO^;rP~tC z8yKx9KQb$gJURX`z*TdRpH&&_@t%u(HE(#P z7Pt4a2_Sw5yBRI!4Hq)OY!EF4p{wKVzol5}pBiT_&YtMh9&nkw2?{(2rKZ}5}Hn)1V&88VzPL=vC@G=5zT_U7C&yT^e91!Wg-uFp|z_+C-%e5Hi>QwqLeawCv zmZ|6QXmubH0*MCZ*zW|eZOGvI@}z>;n|vm2i?Q(p?1ABulGK(=nXk9;o2mG0#YPHr zz;f+qCwHP2TW&S;N+gz7^nbDUmSIu0UEjBWfC_?22?(fw zlz_A}sI-K1hje$BfPgg8H4M_--HL#8cMMWPkJJn>#B&UKp7(XV*Zth_?cKKL`obm% zGqWAXe(d{N|Mg$LB?ofaoPS3)Sw`-(mph=f8rZ9%gY-mf*{F6o?{ac4rXIFB0ku&( zSM@o0fy<<~4|!&-<_cx`Po2J+u6tZGI%jK5$r&8qpQdL3HU=DeV=#*?zWqgtEiEd0 ztDOoxbjL!$Aj63JV+GvzerW@wcdKNOUmSUSyou%^7B{R3%JM zm)ff^dkyBF)lcPL=F8Nhi3uAP+TOgE%8&ku+%+xsjGE=8D8@^|5T|!61n1t9pC^IbCB8GU@cHP@jDLPj1 zDF_lg22aT4eM{wY_a}UQPf!r-{9LGPLa&s%NUhA?dH-@J8I{)QARl;iY)Ad_h|=ON zz1yf9ATGPMO)H~=bmnWnZ72bNRC(&*mM6-2HRA=PpfGrg`NdYo9XU;@10Yz5Apod} z(nR2RKEM*dvRUfDFme*%lNU`2=l zEJfoHi2dXh0y`asd$w6YB-0iHFl89Zlfx;5-|2dK+YMjZxop5FK_;3cP}r5i*B-kw zr%3);CFd`=AA`3R?))am@@C3*w!1P z+Q!zxCoEDoYrgihL_aPmY>Mh<3wkI3 z0A>DB5uO1H}p;9HU?@!>6>c?KU-D)uLW4s5E}%@{=yZ?P%j2gZjo3 zH9b}VJt?df?)Jqx`!N&u3TZA+ejz46_jv+L?Bi*A2nZC-XDR${F&w6H8V75c(TN+w z1z|;sG2C9c^GXNnpA4Q1{rp{dp1+xP1ujzYMILVw8A{N}rBxT9LkB$b=6&X@MR!S_ zYtt}mHMO05ff02@Q4kT9dtL=Jj5cfsLP%#nUtWfpk3fza0hiF|$+9RhgJOMjLy6wY zlckP^br1a)L-VBT!ZC^>_Cx7D+w5|v;$vnK>okP~C51ES}=)DxT}N)4}RV;IdS=HoqPVd~FiF$Bc5Ndavi` zT)Q(3gusA22gJsiS28wU`|5cbE-c24REZr|;=u&R>aVZ}r>q3&WEWkq2|+6N04Kqv z>vFTeNDqZVnz6E8zooK4bwd43!i#WotLy$2NUlduLk-PX0g-IYNpz*A18S7ypzi!44q z!{`X%i`YM6h^2Ae(;i%ZGUdz%3GjVX8D$wL3dNp*`-L$9xfay>$Zy_I87b3G3sAy? zxch{)7|iH(#|X6|su|@Mn*x|*E!^Z^drdB!g84+z4I9Wm@mrZE3B zoWjmqDo6#WYaAz3CzN7H@|PLlX5~{cwJE=e;JS+=onpNk_Re`};-GTQDP+Sx$Ju;5|(&&d{`g09cfD6bH@=kOg8152_#389E6E+@oJJqX@*s(4n zf+E*Y{FVj25xq(&X|zt;RviYqNbn2WpCb}s?ycCaixAs3isYd|0mhx=HJuvcaIJdf_FP65)h>3j-q*Z2OW4M3-I( zd+aRzS*4?_q7J0=jHHP!uz7*=tiwjwKxB7VLzIo-CZU#Ks^(T)Bp#Jd%UW7B)i#`L zjIo5UfrIb6q{ztS$RF9*uSgZ3ND4x+ONrm-FUviFj@3ibj^Y_Ui02eCm5`)@_!GEe>8@t;cMr0s``yvHonVsbh=;Z z2W%oVN$t(2U}<0y?!e{I6&NT+F!#ht_}-oz3Os6g+tD@f=5=tRav3~kUa$Ovne%H) zjf08zJ;~I;H4J`jDaTXkDE;n<{!haZ#I&jq-5w*O`z1S*2<5I*o7Df5iU_hOW zGhh|9X=|aP&BGYQ>W$az0J?Ch_51WKT-FV)BVMbS`bp;og^7DLC8{6q;ObgrQ~(1= zD*;(ZO}Me*r0NvV&rwXeSrn6Q4p4KHXKQT=iqRc%I}le3_n|HUq7%4JYe_Q$jG?ZxlX8nu?Rq& zf+>*FYkH5yPE#NGp~B((`|YZyWvcM892sb2DWi+y;*|n0K+Aw~3_$?)trcN6s#h(X zDz^50@(RNLHdWv&k-w8FvsbyKK{BU-)eivUBi_uQDW#bRWl|w5=`9M2+->y_9B{tq zM%5{Tu#~btT^t za!Z={72D>m3YcBoKK8nigUq^77u9WRM#sPpnR5Zmzc>6+aX-5bk1tk$p{i9qC&i5G zCG^3|oFyQx?hobkLt_(^5EhXG&}v>y4#oS*B%K5O*!WLk!&P!gyC`8)QPR zNX;U??}X(i01)RJ)E8ZHW>WE*Jo#`TBxTZUx=_1I0&vx)hCWOYCIZn@oc#*j4**mY zUMQ89Ju9Pd8sym5LQI~70<#(BkKcylUs)a_Em|4~-C(I$IEfa4&LvQ=n7@ztQz09!(Fd$0J zyzlb`l=fb|^ywZ1DXteBxLg6zBS}fEB{P}wSbIv%hGzvJ;`6+AnH0JZJO?a*tDtuz zx%QJ6e(}|MR07J?DHS!GRtoaK80Tlefmi3!1E=6$J0;Pp^kp@#F)B&1V%GE8kLR?R z{5Bg`xA@Q|_;CpchnOWMp=3@ob-hSU#C~+O;Gp+|+OCV=N(~;sT*NKb_a2j-31$PxUYq*K;B{M< zL7`sghxf;HN>afjnM^cW!<-rUqGFaBh;^>@xZ%m#R*M&`FT(SXsKvVop>`!5Q{|D_ zc87VK@9=((i@ZUNCZ=NWC+XfIzQt2aBF&KYVHqXs1X6j?P5Afu???zaUzT>33{UC{=+ zv!XxRl*<_40g>9Q+}k`&Q@WVFyHbwQMEp7|#B*{LzVuGBlu=a=r3rPa2#&bRDUSzU z34Pi=N>tU;-3uXAs4gucN_eG0Upf07z6Jc5w|gLiVN=kdTY!gij%6awSQHe@mY z{Q_N6tl~&%&A)IZ;rTmll$#zK|I$F-(@Mu4urTK+c0&7QFBTL#Zl#v!)Gf}#@0?i@ ziIiXg30q-cqdXIt)=!Bd*`KchY4lq8*Qi!578t3A*NYd6;@yrBxsD?*=El~*1b2^l zNlHE@F`|S7>lRBXS2nTrVjfYb5>_*N{3Pq?A!;h< z)bJ(L_xuasO6;u>2A0#s8Gc-kQtpiRREd(zkzg)F3?>B|XaLMTCB6A74}ka;8}ONf zD4tEYoK+peQ#*9NC_zvE*gXHKVQnAP=@~Xuv+P)Uo#QGY6#=#sy$p6vBJO6U%+;>Y zL)sxkRB7gPkq249$tOfLElTg7%8L?0NaNENsvR#EWUB;@$IMaXyky;^Ytl^H7FL6l-z;tNz!C2-Tkj=gWsEx6oo5B1a3MD~fD! z*}%?S5pP@B#u%}K@!FjUwX~`t$=T^WEatxh2&WqKJic*nHfGI*{TjcrX_eUO-AZGo zY?}a_u`^BRR(0>0sDl@YFq&A)BybT-mET)X9r<}%t>m9*V{T4lHE9E`_6n{D#6B>V zWJS;}3!@GA)%83aVrjJ%2$$&+b!~;&O9NE7C-Wq>f@|&Nb^Trd(*?E&+%cXzcM$H* zl&cL9xr_pqUj#x`Xm=0CHK0HHyu|~>?ib|@{ zk?^E5AmTKvhnVcHkTC2Vz-f}McWwvIX)~;LSiTCy^sNxX_{6vC^fpX&Y|%jZfi~b; zn(1fC$k(&5le693u|-MQFlOfvU=Fv^qbM>C)gWAopF7_ib#x?JkhP>gaIK;N6WEsy z@p?uLZp%^0**Z%Cw}$ds(}8qD)pguFd%#(o10bH^LvLR~hq3;a)Bg7E{-OrbQ)nLS zqt*8HSvk%+dX}X9T=~H|>DPf=7fCwAI{W&w)_SK@Cut!q-^p1{JtpA<=|^&hnIgCM3b9;CI%g+>U->SXo+9=COMRKQB%xPi*qiK~DA3XdZlD z&PsusuK_^fle#O7(iPpIO)i$@`ar=SWljZ*D2YHt;iFfrswZf$5ilu>D!tU~CRkC)8y#oh0`&nV z+OQy+4h_y8vX~fUh+QU{>G}3d?-Q&6?J(6> z7uAuxddD*sC)tL`TKn`@b2C)i*Adsx+h(+#n;fP+**!`ESH7BU8N+}f}{{DK=JEpTF)%TMSs>#gwhr-D`de6v|s6AC)O@@XtYjMVR zQ(l0bL!sOIE8WJEo{mO9OOPlL0l-ycI9n{&nNt;gB5i8Qhgoqsc&B(NuPv*Q6rq0F zNzz{!rF#4=WTgvm*9dRzeAAv{mE9nmJfl2;mT2v+aOBD+Wa0~&+3@G(PHxt0Pn8(f zIhJmCs@@IosWq!`tZOJmsFc|-7rYN=8b_)?6TQ)y)UjODYqc>e783`N8yF4U`4(o( z*m&nG1De(B5DtsS4y#(WKbY(0ttj9ZjexMV()x^C@5SuHqvmQ3@2i;%ABv{;c`zJ1 z^go62e+W(QT~h**7M{6X_o6*qr=~Z&d4Wgn*OpyPSkK%rAH&;l{>w6s0_&~xicEh6 z@O`pVVOm$~_u7kh2ZLU&C%+E;HrIl1dv>^w#na+s`NQ48EA@XmB7`DM9m)Q@skSvb zO42*-3a(FPH;!p`hv9C+>ulysl)uf;0$%u{G>%pZN5h2Y4wi$D6wCF$-n=~%$Z@M= z+7aGQ+5kCO5@=Pr73?Tj#_fsN<=Elw{n8PjaCl9|e?;%HuK58i6TPlooPNO(o@d*zwg}c=*)Nz3Oa{}W_8O2j4f|cs6CGZv zUDQ-Rh*JfPTIfiG4=)#t<@K9pUbR}ZKWV%F@VGG4d7=Xib!KTlMZ0@v3)YVz&h^S$ zI1?69Y0|PEbLm?ZG|P3%b?eByCyp)a6e$XcJ<+K4|I!K`DGX&$%8q^{t|HN<5;O6B zs&v6&-c3I4xQkpixV}|l?8e6F;k#VJAY9V(`Ou;gtQYv_mrWXMd@8+h>&R-L$R2If zlX-;)<$Lm(`^e|qql=qxS1BOPBg(?5Z-A$p>HOi`@yq|DZ{;Pb;FSi|?RCDk(yxz= zY<(=M>k^zNUN<%)&i$auq0PHP29Tf6J|52v_0$Qc$C8IX{z-7EBn^K);!7xKO<3qv zZ|x-ZW25Su9#aZyVDsG5%L&(SZBLp1!%%X5i_>g;JPpW_Ohv9*6>Fr8Eo1*0c=#X1 zw}1XuO!0MZy3O}%tLbTW7po98HMD{0DA1j8;DJ=eoQ(Nurv&Su6h$9b7c(D$vH@Fy zl0P2Lb-P(eIy+xJ8vlPZ$v$Pg_YxCvK&z*?|14AfW7wa;a{nB%{vB?7WJ1ZGHf^^T z0L%(N2RXe7Kfg~4hz|EnEK_tC{WNKnr20&i$j2(&_4czrGgu4nWfz|_Tu!h;;cw|0 zDue2y5o`ZIvak!e=_I`iNY&+K33Njgl|U}}pXzOYA8@Ek5mR}60romkAK}bRae)pT z6Sy7T;I9!A*Un`gD^<~?^y303N^04@W$BhnPaFVTKWjr!BgEJIo21)gVv4;VX3ZaD zv-16pno%z<>EOdEta>-@og4JO0regju2ArGeUsKhq{W6yRP**vtIj8@#HPempRxS7B^p}^)Mu+iX7f4$ni;5 zPMj+zW&PJZ@$Z%L5BucxgD?KOYnSW#Y3ioSi6_Jc+M+kpS2hyI<;ToHO)YQMzGq*i zJ*4^{zo?r3?{zSPS_fS#QoE8SdRt)kL2?*7*;-lNH1;tWeXRiJjIaF4~1+!){*C@VUw~Xzf z;Gs)=>aHYNfK|7N?Op3MJO z*)Av?5;bP;|MGFECq!>>T=ZgKA%I%mQwZmvp!=6z>3=$O{&7!4{l`6CG@xH)deL_I z-~oPA-~SHmb&u7rkCqPVnwB^~I3y)VN>&DDk^B2l{Ci#h7wf;?;`(U9ylzeXfA!7- zD1m>Yoc?cd#{YN00>AffloKjG`ZvGpzt~s)Il=n>6Tb^BeZ0pTxmIS(wAwZR=?Piz zT-|~A_MPVE-`qIe+IgyRuo}Z|C@z)ApJ+ty1~&3Ie{kcUz^-(Q|}u5p$WyIF3pI~X?PEj#c*|M3(3mxmDWOiL+VgY9^J zgF1g@MF9m5|W(c+)9Q~(wympl*b|=5UG3>^70D8xYihbKW&A%o{(S*NKHvB*DGkdzF&wDWO zfXZ~3lMRzS(M{0?Hp|AwD*88Nx1E;gl2y!+j*m{<-`Pe1J;sKF!-DXEL9w6e9Th_Kmbb(-z-QtYlcV$8KE~1J6 zQr;Wk_}3b^-%TPn)A5I-d{!T4OkuhUIjRF>w`Z@`MrVNPU<3lIt(PhoPimIad=2QA zm-0i$3`e{)XHC@7Py3ysX{(|GNixC3MUy9jG9;9buEC~7#inh=rN`~!xE1#LDiXec z5dJ~c<-0<~FE%K$-scGgaS@nZTmO(t?EZ`1^KiyN;H~m=*w4 zkEz!7yLS_0|B={agO%!!cQRdJJ;w@IqAE~@^mNk&z^+qmHS)Gs_^`UHUC(Q8#_@3^ zC{G@oaGQXx52z5YA|UvDk#EX$9S68Z>kYikfiK}Jl*0Bg;glRKXWw5;aZV!!D$6>o zC=e!q4G4Thb&~R2qj7wq$C>dI4O^40*ej{09CjpU}Xb|X9W|o zoPXfVS5pI;H1bSS>-WxKZC6G>JLtha-J#gkFRJ0k!zC zA5pgmnCzyKzrL|-JFEdfE(gVFN;=uv4lwTOM+lU;1GM8GK(XP6_vxW0rR!dJXec{UqtYq)lm{OQ zd1q7qq)Omd`-S3OLEdVEX&=A5;ooF0Nd=UmbF-yBYVh~!sK+*GrbE)n-LB#qV2Kxj zH`c7KZ?WnW_SsYX*~aQ|F(ZK{__~{=(q+M8 zh#NeZ%0%`eY`fBIA39nrwp}jAs?-?Q%;xneTMoq61>bLhKIG@YvzTZIl1&N3&BIJD zTcKp%P#M8*Zb|UDz$WueN?&)TpY-Ohy?AJudcvvR;t^53Jw3zmu>etZO^4d1+MKK2 zeyr7s6f#O}$5?1`N$_yC#NLY>t5tn$Hk@z%M=#4{SN%#gQ;#wY z`PHfiaD5Gq>1+d|tjor2r`3VUO*^x&8aDH9>MLP!SBHE?dt>&_d!w=d35c*V!a2jG zBqh_gO{%a8q`tCB^rtY#BL7>m%egMg9!gnn&%eH0C}-=R%(Smv^X9Z(Pr;aa*l5gu&=ovgzHYcvJ~?yt4!1)|a2c z`{a9kC+!S%)T%xVa*i~?n9_awLKrgg zuXZ6nPP77jLcVDp_1%|`XJ%$l%#AY^S22W=d_0~`o8h1VKtrmI$m6Kj!K-Vt$J%=7 z6Of6sobYP%v80RQlXb18meTM)o#2*Wn~fa;m7*z!i-GpSBsZXZ&^HKb>c5v=mAQ=K z7{dJH+Fg|1T7*+vi#K3R(B~ zA5dqUj16fG^ajt>!EV`4;55BfQ5ctgV+<}`B3&Mr_V1)*VKg7jjR)q0eLOe0tYb=$ ztS#2inVK5T_K6nyn}ZeNV<~LcOAQdJ+zKj7@yAOdIq5xy7F_#)IaS)eM|F|gMRJ|W zdz+OgFe60Bz48s|l#pfCImcSIh~K%x`Lw-8>$28RL9w%RPE>d=w%?QQK&h1MYX}4T zVarSmhXfu#jVV<2E~qThd3A1u*jeCNb&@}W+2+3OYO@v3AGf@H?6^IV;QjlMr=j(; z!w8i!?@zRNjznBNiy~n))|2ZXBxAQzJr@Gbv}*Q3R{pD0ks^P!!jm*_%0G%cP<$f~ zf6u}^SM7K)AnNO@`LiVnJ@kyf#{6)j4QHZEOM=hYijE<|E|cZV`0YiL1jGl!YLW%S zFWqtWRqw{#bJ+PG^oun(kI8bfG}eMEv+YKq-YaeRF^Q;NZ`$Ey@Mw+}K62j0T1zHY z{I2$HB&8rDvsPU!(DOaL`@X2xjOPy`3fNhGp(sz#tnHiDfBbNIdbR#(Jgqa1yv%ju z#m{(Dik?D;(qp|>p7nll2hVoMI|3M=r`{fp{Jkd`hpVj@@QUx+QnAdb+4b;m<37-c zC7>r|w&~<~PYhk+x3KljJe9y#|_)$tH42%;dc&hLEeZ>*&=)ClOIY&fA%zA zUF1FxViI-+eR|w-OH$1PrlP>$|FlI0)*>lUegmCR5nDRN#vyKIxzpv+WDwb|NtPbCE2FPG6 z8D&yh_^YFpe4Pm-5VZoTu+AMDhS@0p^h(9#^UQbE*z2l|RdsXS<>T=DQ0LIr+L9xFY*9MkqeNF@Io8|nv|3#6Fp;|6=LF^6Ei$=7 zf3}1HH}PhJWY{aI)uJtEG$>*kO7C5|2V(Y_J)&s2C5V zGSPHX)HT&^=uxsR1FfI&B8rr7@Je9oF@ z_zySuDbA7PlOe4?GJfwfcD%RmWjwr`BjdFQcOS~+vT0Z&)~I9u!y#pwlNwGao!c}znmpB~qYAg*oNw`fbu@u6F*7s*mvs(YsLw)&5Z?1PEX^K_ezMNlC7Ewc z+edpA7YK>G+x*takn=Ao>FN#|%*op0oovMCp_CHq9!10wR@)6RihL5PKfuM+cM?Xfg4vY#apP)Gg0G{Z0#)K)BB-)B8s~Uo-yvUd` z)vVg0-T?8(GjFLg`n5Qb`UUJ27gccBd@Zd}<2;heYucy2=os)G({fpU#5&Qira?d{ zcpaPMzOa_?JDY8LWRwtn!=(41^0Cyp%eZjxRb0(3(`IU!atr&5)> zN0>?UbA=PX=(d^LD_xTN-C;8mTuuI10Ulv>3*RrThm!gAblnOPw>i&1EbfLrl5i<+ z17KEmU9@@Okyvo+uipz$`w`l}eA89c(AqCoHVlg@la`)a&xg#hV%$A5NQ2tW512d; z2gJn}i^^Jm?er{?HDx5nl!*S|A>H-hxNkY2=ZlmTTD%DHLR=sY^7cKQv+if73u_@D4*5ku zmoKoQ&3Y09Q%N5!9SwhdQM9OSxHq-)V<45AE%BIYu+};ByP+@z2V%ht*P<0ZYq{&O zh;>O~?GJ2FKP^gz|M#P@VU&0+nB)G<|49ql&6$5YZ} zXP!2tQ@|5$<24h)XUV%FfUBiSeB)x>Fsj=`H@t}1 zx=kt3CKE%lX5%8h)|9A4ezxt((UHq~wmP#)-3%DOT)o4-2Zry=na-;L+|z}4nZ5c2 z!4FE?-p9vN2c0C?t8)ORSmRlx^rC?K8(07}17B*8P}m$|({w#jS z>(2(XdFv)HOGtGn03Lgz^Hy6y_AP~eL6eW#&ZhkXW?p$0-I7GDRRAG})A6tBoZ;hb!;EoNgRJ<2^6K zd%;=XNdW8I0p8A4=&8uBFA`MpF*iB^I7(_(6~)2}65*Me0j{U>vyeO(6N;c~IdML| z^yaQ&weq*5M3ss->E{7HSx@ z3Cy}1v)uZ__Y6IL4Zv$T%}0C3dse)!YFhy(r+fA^fs2lgTcNTPsh~rWrPdW%fYG<_ zJ*B7_^s&SP?=dLS_?d)tbc8OAq8wx0IH)~1@YUnFlIj7D%48vLi&EL5_rUSTbL6?j zl^?r(CI6>d=OW_FE}u?*%s3Tj`(=y3c-@PWHz<3Al!#t0-Xl&>{jep?0`?jjLnU^ES?u-9q;VHZ8$&V3s<1Hu8R7X)? zSNmAc&k_-*&bOIu9uFOWQhOlg0YDh1SbV~12p3?|kQ&v(4l7o1v` z)WlT;HbIOneJz}@4C4R3xMwxTTQ6F5!<_rE?Fh*p3K|W#)f=%AUT&K&i9qFc*VcU(?aPnq8AP(4LW%J?LGrR1~ z>cD*|2}Fh)3_aafe+FwKK}>_@RJRqJddtI6kJ&Fhf^u|1O93Sv4=0#~DODs5&}_pI zfHysi)@Dxx<%rhg0)I~QL{t}T-v#^o&OJmnzXC@0_-N5D&yXsin9ZpF%*y=>_9o3@{dazYIU$ zk;cLd)WoK5wp$K33gdmfi#1v2u#oNnrgQtB?|B7;OtQ;t9*c|^{rsy};ukAXx&QHz z0VGVYQ7Q{yOhB!y6tqBFfKKRqM;oL%sL`BN3PN&|v!+{;vu1$AsGRoZ zYiIVffJbA-rQR6iFxzXC?H8zdgxRD=oS_#Hz7)8}x@FPp@pAi7LkVjljG2%hR7Uy2 z6^=V{AEC)PmyI=&1F+gFje4H)p$j&IVbNQdd=o7@uEV%@WU!wVm1qaz)Bcd@deq`P zT)L~Z(VoKVO=Lmt%cWKW;$_<$F2Wh*cDMcvvAp_1Ukig)yg3r5yGSge)=kP5_Ko+SEnM z1C!4VmB7L^W)s}2$uUKvfkbUcxi$~0Kf{mwHgK-D`KZ6P`7nwMw@J5mO-0fXw>(K& zHG7##U$~}oJ7XigT~4kL2KzE|w- z7|7cR#&WQkIrv=Eiq$z$q}81!-d#g|Ta6RLfWRx1cogBeQ^V@PoYR!bt*T zu6!g(xAC>)jX*iAeEchr*pOPTHtp%zk|@-qK)b;I$g3il!mU7whueCRFmFT92PXfK=MtyrefMsB)pbm4R4^UVUnm&YM8GHb#M zaW}=|P-^gz7(_2X_H0m$i53&h?7Oo4Bd4g$+ zZQdW{M5I`R1}(HRot`!rkAfY4Yq+(f+G>%r77a{0@NBx#+S7B$)YDZah0}cJSdyez zG)nbC9NzMQx2d!hl&8Q7XGa3X2|`3px@bxnorc0!l?9uL-O zZk+X8U0*1XZQ~#jb-|LTqLc|HvADDDl1c1bWS(+aq$__W_eFW`3J@Tb9sgABA zHxW<4(J(LeW{9w2+dN$5zI2VsZV`%2<2#8sZ}rYQHJ`BeG5L|Grl{+l)38}=&*8aT zHBG)Ki9uM_2oxgJkI)*PZp&tl$$`(dG9GzuQ}Fu2iw~8*^f4$(c43D}daSH%guAA3ew>QDj@f8gO{w>eH`0oU-5ml!D-4E~ZL{(80J@n6IxU zs|QK+9z{dRxZ%5XSe)qs?%(PLf~go8%c3ZM@^@Ar&Wk2eU(8W*ojH^8d1V*5-$e)6 zzTI|T3%qJuoi9Ku}S>56BPddb>Q_uY$?t((JH-z=0-zL4Bu@Zw_a2NYZ zuYxLM$vTrASa7<7U!+6caB44VZPTJ6M7!3j{2jaT8CY+ke2(+A z%ZLPJ9YW&4!-9BUfMj~Qi-7d6L_XqWr1CuvDONwuef08IPJ=8=o_H{ox^8ica(?qngY` zszheJ9-qh#5uDU0%-^4p#r$_1l=LSKV$?tMQA;Z~->9fm=*V^6_Z$GLq zs>K2L({2@JQ6%wmuh)&vzE5^4$lhcqy|qZ_t`8NOPe;i~`XXLpROy!OA|Z64NRxnY z*vSc8;;e4>u5`uhg#OG3b@1Fwl~eRI(D`9BtbesM9d?Q^IsS~Ahq~1E*zOwg>=(Q% zLjgzx$%0*rOX|bVr&0#w!?413r_a7HDcG#!BGwwPB6g{dbPM$TJae==8R0lud$rxC2{kN z2Z%MBwdO`=qQ~)PjVfqL%T(fiQ3C5-@<+peQZ=OXb@CHzNYbQd{G5?xFncTs5f}5DMI{07Z0awr@y$_CV=cna-Gh9SxiqgaaSiJl|8g1nrjY zv+ssc3a-_aR8ZSIAj?Sl_7Dx^x^+{^@~r`Z+Q^3v!>#~6(}pTr)`r|4-h;9ged1JH z_3!3*!YbsjI@Ku?{`fH-pJG0}Yj$TUHv5jk5e|1alOqV8r<{BM4|6W^UFnYG&YP;5 zybvPr9PqIYn#(1Hr*pHTy9W>)8^cqX5<+}D`T+ed{A~cJId#C<+unP-gohko5fP-_ zY<{m+93m56kR1KMD%Ph-UCbe7R&AooJbQYHV(Hfs zhL};xXI}P(!9+su+`GTGw@li5dLNd7ZPZ{&ki~;h3lk;b z-l`~>txl|4^yx0;c03~-fgDOo*WVBmRK@03^==H^;CN)aZ=x_B9_%yp+NnHnkwk-b z9+$y%FzxfaJC6E<(E`8aPH}{U@0k>(*9M!X9xRrDJ-u`C@B-6A_7DPg*M zt+SrzW)fv2aUUMX*iMd5>yoif$$5K94wB*kSyy$C0;H2?TA|LFQitSp6~A%-f4<{ z_2K=k+vI<(R`=hlH4L>{`!Zhc9gm3THcXqFHhcfVu}Bj%EZpGqw2%L;>!@wbkDxd? zU~)8S6f!y{Hg$OdYbC8RkpTn|ozyDRzGtt)t-{VK7a8@uFKWi~Rd{F!zL=bAHF#C1 zFwY19xv)px7u?Z`dfjPk^KK2-pP8Mb$EQh4_)r&ErAH(=Fm`A#WumF?$4y>o@kla) zO2L@BRpBIP_-{_0K8}G`%SE?YgXEgTcRd_7hQEADnMx$4vRPa%oU3(~F*iJqx@IUw zSECOyIB|*C!^6$((?zhY)jMr7{IS>)7}RGYJnt8WQ z$HTv?0(7b6wpo~QRitBz(FMgw;?iw~L`C4I3dD_V`QD`ack@R=X{8fB1864BsC~Kk zU0j7UA!o(30QNM*LKw+_>jFti1l@}8QEQcA{FaM;E>UZ-E$i|G59 z0HVlK)nP3X)atgFmaJH>@bx9@SspmD2LoTwVrsuBs>;=axLE@ffCXdLXw=5@IgFUu z0{j~`CgSI2+uX=S5mz%}=>6B&eMD;72H*wq3}F78rx%RLS-(sOTGgB9=^`~-ZC;`> zm3Qc#!2!(Ca0jz)i9i@t7<&W6LX-T$8NxMS^uIIP$9AW;QF-Jf5f*CN_I)3vp8FYY zdq?IYSEupb19Lz0x_uJ1LrG#&$puZ-PHhgHPESEK>t{qfMxUEGp3Nbf$6nIWh`htN zjZ+dj@XKNFA?VP4_sn53saIBpc%=)TuwIds>KwXNhQwz_EC^cUpX-&Ttyf;YMpo6? zJDzTD$geApAi}9=87O$RUVX^4?)DSGL5EiQ8n~sMw%6FQrgMor2;ChS zNde>oq*EP=uutaO?UI9_Y0KI{qAAn*{t%D1UaXagW$NZ~q*gWHXR?}(j2p!oww2s7 zU^4Aoe7%;ni@V#aSSyP!d1ayj#lYs6A5Oe$I5$~BGbGqRTVk(wK4S_-(P3X-5+BtA zsuUsUJ$pfDEAGkRknq5|99W22`1~a6Gn-wOIc&gflV=TRURGL*S9_heF?nNVR$Lg? z$ds5S;I0TK!$=LnCBOebvXE|)1nGYG9SigfKI?yJ4L}|66-&gKfxWjLm`}1c;L|z} zQ&Fq2Q(|dgthipr_tZ1I0SAfIX=r=*CK^C;Na(t|9sH=t648C&R6|y}E2y{isbBCcH|A2@A&tKt{<%9_l1>BZAJj*0RI`ce)SQGC>H+@cbW8@n@W&cpNfDOdl>Gb` zp!5>8gty)eiZmI##*#jDFuovfDnDM4hkpXLKI20q`Rds=henZsutbE9P7ofIIczF? zfbSk>g&6kN{vT*0nBsU*_ojqgAIvEc(4U zL;>%^F{HM{P!8gSJfW{PqY6E1AP&h>oa#dyebV1`Ga2p2W=ne2EOchT^!e~#snU@* zI_u?H>fSl>8oy;D&||2#`jY)NktH{UZi)2?S}1A6{Y75gNN;-Np%$$7r<9V;!VezH zP*B5uKLXN6H^j}2fFQfHr9e*tbP!_+yQ|-!dehsadjoV0SbVw%?q`;2xb+GryYXmI z8Glfhx6ajoT$9rsgv#8^!&DCj14Zd3c~iKopM&^o>r{2XKhY0`rt5(Th9UefSSzM> zwmuE@UJeN-S`3Z5L_D3cID72URoxRKtfvdkdeB;+x&SrmONi3G`m(bbLuX%hWIdaas&$sF`5uQZe2a5TGp+6FCpsOq`PdBXq|$h* zKn*f@!f$`Rec)CxZGL&AJy;xhcT1Q_FdeovhiTeU3Y7U{yY3EnEQ$)S^+5sSo)3ucUGVd2Re-={#8Y~*-*FHV9eI4|FDE4I{@p7up0Iw}Qb``)W{ zmD{y%8v|s3dX_->AP@jukO> z-ENz4bU6OW5&M$8(Z0`x$S|v9XKI-zPgnm%Gu2@%2B?FMJU5950A~h&%@Hus=)^B!JX@)6=?;BAb=PBMvS3MLdu)CfF*9 zF9NJgv23@!fgVgJp8#@~kafjb+>KUeC$jpXQJS8e&Ej3Sada{>P%cE5%4k7kNoYCD zJ9nonZF*;-G9U2~w*w85o?PzjbF7V(v9}~T>$Mb&L6E5?f zRD=G^ntln@p%nqtvM4n4lNm?Z%I4{u$17D**<2H58nvd7XAV4%I}w0@N855lf(-$|1Ley9_aUy;B~XG-(iE z&=Sbw5&i4JU!l#55)Q_xRXpFl^%d}frf&LW2TSfnPi#Fc))FO}<+tm9TJ5}I%;3#N zbnn&T9n#%FTV>ttdh_ls>vTV*Kez0a3S0@TTbfP8)W4hVs`i`i`7}IN4~A>neZCMN zcPY*jGsrBi1*R|6_P|#O?&|k~`f&B0>{MZJkeC&dci*+pb252j9^6}#0m{WgZv!gd z3>=t{Ru*EAOU*Z@kzx#;zc2KN2e_2|lBnWr_*vtgUllkNrz%jd&2KupE(DHjJ;~Nq ziIJ!q7nm22j}uRFsyK1H1{5M_#*KK-cR79$%qi%;jpYi0KiUlE0grcgeCFmM<}kRI z15=!DH|w?{AuILzo1JZ6dEGI4`}3a%{pC^^1Lcz zzC8}0mNtI~)qn{kh(_;* zoHaupLv=|FXl|Z0+#`R49J;xe4Pp8vgGu|=G{5s^4sOB!)ox_=y;hX3L<(LIFy-ab zY&aD$sFv^gGe`YA0K_X^-~ z>01EO6g2o6Ty`Z{P7o~bINYH{@@mH3A``~$_Yp6*+1voc$Awg}-5&3hr=(P^Zz z#)h~F4F)0y-+;MkGR~^mJr&O77dV00x{Uk!?Dey?Q_F~oiovh9`1oXiw7Cu}aX8_& zNJ7Ub8&>YNtVHKWxLtwJ`EB6vRn$1WoMCtW;c^C|K%jUO3i_d1-i>0`Xunoe$Nz3$ zh2dC5g+YYF()+}KS6s8d%t5c+5mU{lHzUca+TI;hL~cyXWyHkBU3)0uP+K^5{QSaJ zrCy>yEQhLg@z}$cwZ=ztQFTCRE~9Eqckf`An`bP<6v~!H3^lwFHS!GWe@Vg_!=|4S zAHaA51i7E|p8e6?R0CC4<(cGU^4n068T_8(eI&R0i61!}2X0*GX8Ou4?X<*cEb!8M z#koqr=6MCeMLIhXl>fFpB5rkZ8koly7IPbsKY&^ruToT@Jz@tsX*p)6@isDKt-Rgxurp{B(eWGstyG(MPeRd zsmc)0_oT?lPx&nr9h2$a+2oR1VoXm9fl_(@@Gc~lxn;YPUes;p*8My!j!*i+P64(E z(rzm9?#rXvsFGO8P-*2o;z{(l9hcmGqga1~9h`1mp8z}fY`-G+2usNJ>VfHd1x=jj z!Qd!}sm2d^PU|#zynEwCy-8*%vUemO9cL#r8xRuY!97rEP289Em~(&1A*Dm5gjU!5 zXtZKJHp!t}tNDPI0f9~eNA!G81hnQiprfOpa{EapgaOr7lBI()M{U(Ur!Z!Vr=&+U z=000OLBr&Dp06Vs7V2*JHR1g>&0!GX)KnBV#*3}~T(c!|=u@2GuQf!p&3&sSiXPn& z>hmL?!FtvswK)#7)f>N5CENYT#Vybfb2AE$=|{46Cf>3E{Rao{8nTopCHA^9*{I>= z8n!>jSOV^lp0s3`NzGoS_C7)hu{j&9rhWKEU=*c5*?Hh<(HfQlgza`9qjpxswziqa zUA72J%flPa7$O^wd77T*abDcmpfBZZ4h=_K7to+a7@x)9Yc|bId8Z@w%W9<}zvxKj z!2xDNGiU1$?>rahX?=AC-0O8M?dFUSCG=eL;g&@rp0AdWWX_mW_f3sYI?S*%Da!}O zz=4-2{;cGl?n3;=>$T~KtHZC7A(Qo9LudivdM`h)QdU1RvtHm&qO$Y%M)^7ZYuWTJ zsoG%NtOzuOvN4;nN#Hei-6#67`(UGGZeaFlg%(QHviyd);aHJjv0lvf!VxYs8K;>$AVs?bRe(+#bO1*%~6up@++GGVN>@r+B0acpH!y{DVVuCg0+ z>6WNR1_j4W+8;R@B*VD}`NEt9B}aE<*5XF^vP6WKJBx+hN~_Ms$*37QF4c-UJY^__ zsmP#6YX^N~;iJyejd6EcYs);|kH0xUVO&!L`>BmTi#pR-q=b#=C`5CZdWR3Y!p}W; z_2WTbNU+x4a<=K>b{r6^RscyJV<349Z>C}bk|shI$3=#erHy=M38ClIDXuIbwlcQg zinV)mEPGfh;)ddK;4m~1u=bLTOp#}o-LHU7wOg!N~bxvJzoaR zI%!y^z-#uDyKF_whWtY>C@`S~tkV(A2KNAlI}Sf0Rl>2$9kgtqqGmrY_9=<#Zdd%+ zuN$mifHTkzVtz4_(_+;N4#;-bE$lo&a0O8AE4U-y;iIgi)?jgq@|USyTj9Su&!c)r z_!LGcU=E^6s>yJl*9yAEXc@a=!|UF`?-VB__2%b?XS|MsHxCM5C*=OZf9 zAXb}~fJiV@xHDrtaUmUI!83YTstE$!UtxEs(s2yGWnpP_h+LZ6d;^cq(RC!{%?j*h zIN-(9ZltYG1B_#27WqQ8NqC1HO1HT@58&?5I(?r$Ve&J1%@_9DS=Vs?inWx+LkQ3w zba|ymPrb%5$#x-}LDJqLqv%$;2y%sZp1nYcmBDlOcGe=O@FG zdRqo@i~PKl%L|?Dz268{?cVH+z$kj&x#c#zrY0(*CiUqAy0?3W!34l4Ac?8i)=+9@ zW(5i%EYOjz*&0XYW{KyBkRfo}xmrq@@DA~0We4*W#d~?#_$^%$Um+dnE@n~h| z3V!uqZr^R{S_GVM+~|IFcg8zMm8yjU&2&L?^=%+*4rcz zwycz_DJPmn~k?PrvxM?Vv~A$CmGM-^Sq?IsAr4Go^N0IZE{LyPIY8 z$2D0e-Oo<9R;225b7~#H8g|EAs+OFRNrmdQQoha75JGw%Kz(WVr(T0~peLk=*}CkT zJhp|=oEoF!*adAP`SxrROZw$K6Y?BwA;Ez#Y=s88dB33_L1u!G-FAE1g)}wq`WbJX z?2;tpb5!Q*XMX4}U){+ON-Gc{2-R)V)HX1;izG1eV%E%+Fg-a28Fe=RN)qeQ?{5QK zKR+ZQeKE#AW`rz9K{dAqxTW5#lu~axHfRHy#baI3S)g=kQ8;|y51erAb`=w^=(%W; zg$FC+O5f4B1d^ro`cia90*TnG7kMh;d<3P(^j6;ajpvs3X7yYNC9MqTmC~`s6lYcG zD;HU=$or(1|LRJHB7q`;P^t|-uc5r*TUKjZy{Z*u>jBu8H9^H1L1;$V8_5Mu8j=?~ z35l4HEBhqY^*paJ9mFNA?#Mtrgl%Z}4fdB)Ny~L%lX5ri-%QFG712VwY}dEnC#OkB zx1^!|0(ImepjhI3ac=@tYnC!fH<*r>*u7b@L8eUxtI$EH%&UV~M3HHv$YVm$r@fQQmv$A^eA4@V(sN62 zBLMB%L_XKA=;SaUY2S!w z{3Cu|11gz*DmF9;iQg}1wjij$eG-<#&f1tKOFT>6DSX-~36SIi0e0!&VLKTDx@+o( zhTZ6sL#G^!lHGwXxYu>(+i@w|b!LNVb};#n1ajx0k;1N)vu()f%C{b3e-2wo%IWVj zYfD$TP-i@uZw7fJHvhvGca9vJ;wQ>%v}bqxATTr>>aTHOy~KP zsR7OVoj%7cP7mbzZnyL=+z&Wki|m}`NZ{+-C#8Kv2;qnq?Tiu7<)f2)R$Ph{!p;N+ zbxgQTFe_o*o-*y{pWb5f4kVA&Bb+*;D^XnA zaAl~~28Bl~W%McfW(SK7=GS$3WE}v4`z+5%ApuzEpGFA ztJ-b24O%g2vL*tEW5m{bO)(M^U$HQ9i5EX=(Sy=CTZ`PzsBq_&%gFJ+)hFk1>XYoa zyMKC&rT7$lH^5Sk+q_v>Z_ZyBH4wxr)yPnwENKUdJiX^+>^KmO+RROLd#f6I zoXLW+tSIZBU1i8DkFtfV>N5SYd`kG&w}wVyhBrr42xSxlaET@kMpO9$Um8F0aGwG= zGHzuLbiVi!1$E^o4xe&npS;?m1#VEKUlw~aepCC#tp<;7JK)A~+n2C=TyjK8(>rC~ zy_YsLdGqx*ZmDNU>nbicjY<+HicZ+M$8@4fj{``PGQ7U9z#bpHL+MlA)xUHt?W;22 z8D@~Z(G+%vdv#9K04QEBWKwzfi+P5lAELcT+mM5qNmc=wPlF}I5XR(So@s6Vr$yFV z!*{sP9j=H}xGWD!(@-Z|*U&j>Xs+VB+6i-*u`wg=iQfUqj@X)76z29-w-wY>p4>IS#Y4STobG50D4R&vo(*xa!n z{wKnF_e05)atupcYY8syoCI_8t_|^D>D44!5W5iFTlu&np#~AR&iYXqgfX9Azhf2@M*Q)&$4dXvX{UQ= z=eKs_6)0!Z;(@XM5IFBo9|lujU`Tzt6#>k{4AiRxTH1~vEG%***V#43sim{bLAH*o z;$}{dhLKZQm4V+$xuoVdn1ogEQU5C*cSNJ zU>XQ}48eDN*(_`Lt!(o1M;$;=VfJ(V6NcErfgXHsEL}(A3uFjiRrC6?0Iu_5@p{Ua zz$h^r!Di>YKM&aBi)!YmGAz*{uRjCkn+$uq6Fg2M95-}%ctVIhVyKodw9IPqM{053 zC=9}93ICK@XUcbfrChwm%^yCReZa^m7e@CfJzQ)p_ZFhbB5xK%E7;-xF{;U{LQ6a) z=&MdtOS*;vi+SHxgT0bWmCG2W5WeE_99&(zClt#zaPob4fZm%{XUL`6EG1wI$g$`0 z^G5PSXn`X2R1AB!$E6AC<*D)tFsT}yu!n71L#LMb5f=L9OMrTw>`viHx30?`PHTSU zsV*M)rMOMEeu9WyHJD*R%#TdXY9u{jz7m+6u~lR$srV_qXkb%f3R=SdN^NQqt^d=u z_6O8}+ZAGAG91#S)t4^;+@KL`ErV@d2@yN*U6ESwg-?MD#bg^tgCT-IDI`K(BdeMh zWd)=+Fl+$*XvL*V>CS@X&22v)zU-%9)awz{UZg#mShLqREz4C+(qVwEzSm$0i<1-Q zOSb}vSUoDiUluRissLet@+h@`>BCcaDDAL!_xRdT;AF|G2ftPX9NgU!5JPER;yL!) z?Bjz$-QOf8Nn$4n6=T>Oh`2b6irdS!v=)O!BvsN$_t<^STkmi)!2V&c6nmYn{=htzNf84%z^ULl=m-;V3ajw?usE z?Hs9BjX}a?F#C@p9vDfu93cLD_QfcUUevW}Eh&F-+g%!(C=jy5s>}qqH-;?^2KL64 zkY3xLMLSD1pAo4o!j0N=V~!3a$V4@QoP1gXT+mO4^MyuQm)}iFlGE@$#|`WNP3css z;W^z$aR3QvnCV}FbAvOXRpg(|isf?&wGNxR<$LX=#wA$neXvJWNBrFd?zubT)N>b> zoA0ryXAAbYzu$;Z&3=3AgwDPyY&C6My*k3A8L;iRl2@>hzwv-ySRoM!i#pso)M#dH z-Lv{rcDVB4`E))RK9Aw-iq%T8FgoPd1GpN1SvI02*KLUL4ha!LSavW~Ogfg#_dq1& z->u$V_P1CSwi(Ax*wj8G7kdAi3B{Dv4b-YgYf?4`icB3x-&*C7gLkA?Cft@H^@UA| z4&V07bRB;=aMo?xFqH%4$(SGYNS;KiVpd~JTLg|akp+?W&F}MFUvxnjuvek$^ai+Qr8wMQ_W|I%Bc#p#@Gg^gqK_4_LSpeF@k_r#2N z?X|om%fen2ntc6bW1Kb6VfaU-p2B_|jvm2HM)zP%-dhlIRo`Jea02jV4W`D(IKEH3 zs*k4KF?^Q&PQ{^CJL^yNXMy#!+oXN-G+y6T22bu>*aNqAU$oIcnOxF0DD;{4grb{8 z=$HP8wt$GjA2$}*UWL-mrO0S%5+@R}iTM+5{I2ev_Fw<;KU_Lz3pnDBV*+S2%-66D zFy z3^{^QeybbL0;qrSL|o=)4-fyL3^H+??q~TeV!QpC`m*grxxuT!TpO(Cw{abSGmQ7YeXMDroq^n; zO?dAoyzq1nb>i{i`Z9eZ7Qx3V>J_S>-)R?+^u@(B3Y%W(`*@voRRvgqhUytlUlx>{ z^%VZyWBD{@a-1$a#5LT)W0_9ce~A&>v+vkGPuG4&{!T=hmv~jtFrR!Mh28I^`fp$A zAOGSR)oI;_?6mH4=`f2wYPOq070^Swf^J=jbu6G6B)t%{mdLG7ZsAQk3rwFSRwqY8|`FnN!H=hFV*7XI?^oB1_ zbAfA~8Z=*bI|GzATh~hN5JC9?6jw1h-*joC%s@iwf&^aWm0Qu1dF z{GT%c8#6i2_WJeHy^c(pt^NB;{Ga^k=IJ|qf8#$t{-2NTA2;29vv&ToZ2o`0W#W{5 zOiHDM{}&8t-0@2F`1Tm5kYUIG(=Huw#>a;d{0&q8w^!>w{KbdVb9g~iBNA3W7G&0L zW&bv|{bNw^5C8bT-qN?9;m0W^>-TyY3TlWMt$h0YaUVHr{8wo4KX?`2lYFV(#s(|t z3%IMdZ$Ind|MK|*PJjIKe}4QwAKm{v+5i}+|5-Nw*)sp1ZW;M?Ww6tBa%~BcVFa@$ zxw$~TG`|a3S{SclvWjPkG`MZ9@Cn(U9U*G3#P;4PEAkpPD{_pNmiCWO;=hl20kVe7 zH6T=X`&3Qon0T5+`9IhsrHOxd3~yL~+gUP7en^a~m0JFulPSN|#C1W6rN+v!j;JOhGAaD$^_8LTmN7i&8z)YDKXwZ~F{N z_%B}PpI@8H=`8abKYh=5Q-c{5$FY5#Ckl<9=p3sqm2yC|XkwL|s$7ze{}++DIn(Le zjXMpk34yf5$z)2{691OWPN&ZF`$RMK+T;ew{eLm}>^FYKX` zy5<&Sok9?QM4P+f+!O4P5e0l@#D7|f|Mw?&Yz{Csk2nC-XC&awKJJ8tbpD^`uU{==S1C_oJ7+|Ge?!yPC?7g*fA!oMLI4hp zm%>2HWIS0QZ`@N+s|rAb$;aFuVje-_IHvVr$m!slY}3|xNXg05ETxmEeA%h31-Mf? zMwBKVfc=HjNgSqlZZzWwZy~7L0YhgM;N_B!Vo@%3Tf!ksmn|V52^kLekp(So(ejRq zwHn1{-N|2_Ai_?v^%8H@$mn*}`!f|;h0$Fvy|8R9(LLsB$GdanTL-(tyKY>Hv0agK zVWK#-x&fhhcJNu0%aqaxp!CewBVJng{Z`nkRJU+{i6!&gi}5@_RXA>EL*@Z*eKf5@ z+ugm*1-`X6u-XvVJJ>%hhsK59DKO1xLba=Gjrq~R4GAg~96Aog4>n>7o^99wEhL_P zcE_UlXuF^H#6egA{1cT*u4+&POg+cM9U+JgB8*i|6)|8@N}iu!-dgI4v>mZ09=T=K zv;^_KQxKkX8>rc?i*ta=ZTqV=iP^Nvozr|8e(0At$kEZB0D`szz@*p}FQA8OeweDR z&Ym1ioyZTgkY?%(w7kK9`lEAr?GJzaBw*C+}(Y_mMT9+U%PHW`eR`}Mp#e=T^+yhwU=BI_HwFrd&B*$$aloU&>a zIAaiBQT7E)aP2k(gza5APM$S=HA}(j*{;e{z%;&fw<-DT?g=wMI#BPT#bv}nV;tLC zya=txl*uc;of`pj|k%ateZ~Fb;IKl&Tn%w|5$hIb;r z$oa#k0U2^w0eQnQCh0j;i*GhfC{H}4`|Vo(vLmVtp_{bYgQ2hShu^Z+zFZOkbi74e zHhO0mL-P}&nv#WC4vZ_$HN%rCo}xT%Q)D$EA8bGB2>&u*1)3nv8Vnbinh^qg-6W;uqt)_kV|-X}v}HHus1g)s+vxZ?5Dy@=%%icPJCyyMWgmfyQzz2N#o5GFsw z9h|(EE>Iu5MXV;~by&ImwkWQ42P3*cZ*LJV|CCTBMR0efHRymaV!5-&rl9j4gI8s< z+XBLJ=ZE~dsj*rNZl0WJFT zrtOhz@$wP*qjI_8JHmkc{K&Q;VQ;A6>;-!J)%1$#ij}?GvNy^bh9*K8N~o$1S*ejTULnhLV7GUB>R1VUc4@sohlj zO7T(7)XV0}3rv>Xq6_Pv(Pp6==-L?R4wxCoukEoOH{|O0k2AjqJ`h0xs?fN@_e_t8 z8V=S#?%NyJTsyIpTxJ%^!ytmZLja@EpJgD2IAQJ0pN?VIEX`d%^-KKU5gbzvE+t_S zclT*|cM1)ALtG(#N4B3-0snkrvsuH_5M3kE`_L!4c@HoXsE8Y8PNA%sXfL4i& z5U=oGc)#n?{@3FLK(N}uJk`nx7|IJT2*81n(>`1j`T0WLim(~rKDQ(1T0lur070hR zG+e^O9%1dQS8h*x?P=CGA0(olQ#(`9k^utP`DlYorTy*`Q*d2Vf6TY(j2@Q3)t%Q4 zfY!|X2w|u>+7P?lIfK975nI3kK}|VST?Eg?DzoS&vF`gIJwnz)N1#hl- zNQ{)o-Pg=ngL0*alt)=8(~PO;&Pj7eN|4*IxU22g2)qnxkfddi z#kkZGlQ+q4lqFhWZPXe@%_hU(**KZcy-3S%Ps6L}28eP(*s2c3cAQ^sMq8&#lTGrv zY@WwquvX!TIRH-J8Lvmz3s6#7;Ub(82si+D@m7f*mdfngcOm^T3uVY%@|)7hTJk}F z<~sH3aCamC+e_fJP9AscE;1DHX~i?cXw`r7r|Qap!LI7R1H zs*KIAy2e~eMSbk>@F$v#7cdjb126gP_SA>RE;d4tf3Dw2MP3F>pNjoaL{=Q9oBK+I zG4lG=VG<)0hE}};o?v1)>S04&1lnx>=CnEX(OWyVB@g!W4lSV}GaI))#z@w7mVo}6 z!}3ne3#6#*wY0ZI`NHI9i{RtcbrnRGod95r;ny1j@EHcm2N&)MI*hc$u*s13`aq>0 z2Lza9Dn9i|um4qxOzq9t;(wfE@yaQd5twcW$gu*>cah%OO?;mFViJ~kwh~_c7G7(I z5`{_?C&)@AR9IoYshgV|SfZw??1J^dE`$JIuJ+_xpo||6w7)`?J4c6+zp-Z&G7fQ@ z??Q>ZuPu>Q5Qjn~LN|5slLb>bd$i!|{zBsL0YGLEJLcCdp!B&^C24 zotlZ5!t3_DgX{N79`(Zw6W5*VtSTSQFpj`B=fXV6iRk(;!+YDhFrN_a(HRC!T1d2k zVeBnVVdS@|&+|K>k9#EInx?>(<*5QlWk+pTGAzvzS(^BAx0Ab}SZl$8k+A@4*feR) zVU;z%MJ0P@%B&O#f0FNl6Rq#P#jlgYEFwZQk&!Fd7=PChiMki^2DgcT8ge>Tphpy?KY~~fr zcP;ZR3YG!B{FtgkR7Id!YqvqVPFIO#4@(6t0z76{k$4b^WWdpOhioQ!lfrHGZJ_I; zjo)~^zB84;CaGZF2uXr+9bfN%kr;i%X@cWEXfUtzp2Z7m0QoR^f;nZ}CHPYScUU@} z=M;k^YeDykV!79`DxCm#xPi7&%%kC*hK{#aX$PjfLpY*kMyW^caSuFH!l&R4ZxHo3 zJ1u?q(&UZe$>_z@)*1>5x8Huw?n-HByg*^(ldjS(T6n^q&fUV`vAw}`No~B^t_E6p6fB|MMVXvSWcA=poC^J_Y1FL4SW>12Ed+>bD7c>YN`#la-kg_j2RXb1 zHqCemNG@6WuB*(Mbo?5}I!<@lDE;^`VbBXwTo738x@JXKs58c2347Ac>#7DBrWUe@ zE*sm)!Lz1`x1dBjd;=H_cbeqFV%apZ^)&S%`!!=ZU{Uw&zCeSqI(83wzd(`-g6Z0W z654NJV2_6R4qMxyH^%|pIO&!lzkZHJLA__CdvKLr$-cF#B| z>O}r|Xt0#XAL}bl=dKjx=O)lKio#2^V>ImlRZp(#QLY3oCOPwwS5xm&U8=>;a zRTu~A^7(>JjP6CXTH6K@k<-$_Is<@NOys{lb_yRP;h{bNz&8JqKFFU32iz+uNvjL+ zmf)q)7Gf*QzUfN92r!0=y+p^zD)M#6ph~hdFTTnc6&{%5?e8FrGJB6?43w=QZs^^% z7{I#0HKljYRm4c#cx{#1(P-w;Vo{=<{hajj&NMG6D^zd?OLY7*tgfDNJ&{Y*$~Z9D;cdZVWW&!nclR|NY+8&WkJQF|jz)jIsipf;O4+b^z|r=BSAIwL zxn}MColk4xhQ+RXUMo^x+=gqZd8LfelVJ7Fj+zJYnGPHgV(yQKT7FVqt9tNyU5#4Q z{@sXzK6dq^7-`_&ii5w-z-u@|vDqK7DZn~=bwe6{?<=!%R|pFadziNt%1xnuf8!Bz zE2h(Kqk|azN!6&n=p&0T5Ic?;-8wo2jPDj)w*6TsuL2R~WQI5sMeki;+p9B9m2irs zs5+4VIELB54*-MbQC0-TBGf7M#XsNyXqU1w&lhmeZGbrtVL_1CVEhSO z3+Tkd66yOBi`OfryyB<~SFBa*tN`}UZ$cmxwV%U1PsOFn;eE6d_ng1jDp&3@yFpcn z$@xxP6$Luxdht?PuQjoNXhg}cy^iQSCcw<_Yn%g!fFn}5F@*%&E-NiraNYNV#6m9V zgjV)|SF&$4If2hIHdj^K^#bckd*rOc!8FjH{}`ER07g)vYE)QLS(IsnEtRl2EI<}= znTJ}`B125)dx|x029MzBcfs^x`Zs_Yc5?jc{{;-Rpc(er{qKQ+7uMk19_UD6MT?PY zm!wZa8wT1ZH@Z?5E=LZ|9j;N8rpz`o#EIJXaCxW-z1gG?eX1Vb7xFWadhGs3!0ol1 zgPh(6C_VUbm=Id_u>LsN~U*cHAsxUg0VBtP|;QAL!{O@cdf)1xKi2OqSsg(M(Dwh6gP#&-+Q)RVU zJUuiDpiplxqsiHLLBkW-^wWI5rihxTV6TB9Qb=!=q7UNjrV@5c6IInBlJ*q#Jd(ww zYqX~U5~oVud|oI^nbFa^`{%v3g7D-hbXW?NUCHWE4zu=fbn(f$uujcE{^4$Ljj|o8 zUR0xfT~zNt-W2_eT}(6mHPCVYlF29Tq8`Ys`Ovm@hw} zNxQjr`QI`9&Z<@9DM7A7LCklgqlbBhEl=6V|4Xvp=FvZs{kUUmqR9TR0Cog!ueCCS z`>zftNdt4+$u9L1=iGeV6b8&=T85iuy&GPQ1+@OnZivP4!*x9u<{3eDc~r1_ez;h*~O&38aaZ9iH1 z(Rt;jD81Fw3%_@TZX>n+*HHIt!(ls`CzEN{Ub_ z>iy=nM$MC{l~(h>c48bMj1lX^j2AZ&jzyK$_uEQ$?r`MS4E zk|uiG>dw}8lu=dp_3D#{xqC6L6XBQ>#@3J{^UF01EGtUjIqeh9Ijt%UdV7Wq@0OAjqvi+8h!p@N4I(}e>-&n<9O?Od+~r!O1@<~rsE8&6jy~7U-y=hIv_haZPd{H~oQAQpj0oEV7 zR_Xxc&>283{ry&+^m&oy3=8*=JgfEAdA5Nk1O&6}G?kz62$)mvttFB2*3Zq2K_VJZ z1Vr`xeA+p3o-!rQf)BDz2D{FRU%vC#9|D!CacpA~=28GD^}U78m@-5PabmM-$)0te zaS^?qr1OOiyWcJt@P|ouN{-hB(RnXqwuPh=56YpLnw^WT^al6z>Wk?g+|(A7fM5HH z=dYzxZ}w@v8(dM9t8+V8LceR2nKMylWo+JsW^2)hz zuYNEu9Pq{CtaUe)QRr~07TQT|`*U|nq*%)gL-=!CCop$v4bCp+bUm&d<1hM?9V_E<7Sk7bED5J$4 z%Pp)PFHf2;tL0mpsjcb@2!36wh+10Mfbrmg<*C!&_Ftr^UAZimD;xf}?pyY%Qebr_ zb=vO9>I6~z;BzXUna5PCAJX38_h&E~Kc;wcA=B?J{rTlO?W<~P(f8}H_cfPgp2*-W zyFR;0=`CHzE;9;=Vop$EDG?p{p1(P<CLM$NS6x(M!AVrELPT zl$`RuRuMzK9yk$TBMH~03ZQoq04L9=MWqP55bOWxY8ySki7Y|DJRWZk7-&HaP04bQ zFoZk!HIS2z%ri1}rc*wjwqLq+qpwb^XmRd(TIESoc-LnpfS7spnGpYN6~0RoMl1Cn zMh~nhw0+Voga_}0xKz$P&%sYXOdPx@ajoMpEFR?J%cy}8hKXq+FXe1K$I+jDaCv!` z3os5Omf66aX6XWW^&9w;%)b!sgucwS@i<-$&>E5>og-KyJ9WOq03bh1bN zXpd5_w7OLDYUWVbQMq<-(J&R8{?i-Wi3}8jUz@n%K-)Z^q$D9& z)ar;s$prRR+N@L>6+QTL5cTx zLXmq5Y^F(>)r0}E!TbRC*ggY1D#G#jX~cr0&AN5)DxAEbBnJ;;hPa>?6e%F5JAl08E0%v^8*0PMyaALsEr!TL_77 z?&-lS4`j;(PK@tQ9@N*Q`37|YP7R%6vyD0~_S2~I2j?{1BW=LN*^@wtRM_ti(5y9l z-g~# zK~%H1u$_2Pg7ILxkE|Q??foHO@O(U}9O{KCvvtMs$x7E3wzf0;Z7~t)-J-gmJ zI!vEdxz*{^@3_roz_fEqfpOwhmOwVNLBVx*?AGFls*gzqxWn5<3G>9pdtcbJ9AY+gN!$WtS)}COnfx{H$IflgLhjIF#JAzafed*Y zvI{8!NKUPoqnsuao7dSjwb*XGbZIkrox}6@R;q@aR=Gx7!%$=LKzo$QuG)EXZwZ3q zc0cyI;ao>Wh@ql4;VtR_%6AI|4adAfZYzV@^MEw$v+OFSDNNqa*CE zQxzD#^Hty;rj@}vn%s4bmw;yi<-8Z!Ong!4b<+b}-;U{>)Dld5J~Sq8wk*?7yhd@$ zGSNT3#^EGz^9fW$dglm&w6SO*&E>ba!D)CGyf3i?3$v>4@*{8C&WY+Orx$VgG-NZJ zFwn#AuDidzcC}A%JTy`Rs1N(7&unzKQn`7r*Xz4YxL|4#{#%~a^gv>QMC6AEG!^sp zZm1L9yCv*6*mluSZd)T5z}126e61qxo*8R=I}I9Gdo6wvy-@*)hIN5gm6=%km1behxl(I!$lo~(S z5q7tDuGE+@l#TGnjvKEyKlzqbsxR_42gJ8i`*y!i*6T+f0iSHKa!rIW8#u2Pgy>GK zA)|`N9@jWDCk%0ZZe1O@Bey_BMD`Rqy7TzmxU*FgZq#4jUEi5Ky1Zskv0+oTd21N? zyI~^}G5-3J7kz2fKT19UK6hOnv*vkK|Ndy8se*cdMshCQ6aoQZhbh^WG5y*K6KL zJCOr=?ebN^&_o<%pbP%$oDU)X!(hHV(*c&yOb2vocQdB6#Gq%*AX8?`vder;s;8iS z_s82Jk@t0}2!B4tEWW0Ua^*E(0UYn=xf|G+`wSv^NL9L`SSt{p)dNo(){W+@(=HB7 zboc5`RXK7s(;!vUy;tj>3Ge7O19U{ZsLYy_!W#(?#e=N4WT6Z1@E~-a>SVVz0JwLy z>fET|9jq{~M3~V|xRQax6HO5XEbD;61h1?|Tk!jHGK%khJ9fB?e4i2|e!m2SL$g5F z+8m%&O4n>$o-C%Z(yFN5q17o_%$9gCQDajBn33Dw(GO0~Dm@Axu}RXJuml7qWk|tw z5*2+QK%EyVUSW29BOz5$4owK=_j{&(qabPB5TMfJJTUUTd&huU{8i=i+}*cN>$I$T zXTDJ0e-8{g*bhx3nl+RpYBF?hzxX`=MllR>*|LSzrmmZQOtGdM3LiOQ@M02xkiZvj z>iMkBGIu@+Y;?X+kk$#zrb(oxNySvH~S-|8?VFPl`g<{ zQpbim?8QCWHz^&?a~3?`-~ryn6E%9i(^&8l)$3zO-pEQS!@7Pxt+@MUbcU+;`wo@O&Te}&j>QK)ZwX;cWj5#z!IfhGEV8tTyhq|fW02LAz@oJYMglaeN z;XKnNkl1M^SUKp)!aiJi6oUqXm0S8$8y z#a6${-YMoJ6#_Ig#6T)fPBQon#fD$Treu0fU3WYTmjcEeDt4V~Ca-_U3T+`Ix+hX{ zyX8jO?ovCkdY0U4pV>!@2PTG$#9uULujAH^hKS)E=8%~}D6i*;Brh5|eXiM6vtMCg z6Ym8+1t+J(nZ%&d^Aror8vO!zie*^_ACX{*^GC*GHIB`cJmljkorbqW^jTCB7V~-E zP244pRrtk2gc{`8TF!>Z(=%H2i;ESKnTk1Jl-fTr)_ifHLPt?L&i-&<#28(F zv^lTw`EjhMANfutn%#iK?BTC+fI|s%E|QbBa7(JjWsI!&2JQ9<8(>*tS8=&SI9#;LCa<6{b|$7+!p}9k1z1Fo zEaN}Uusu0UE~TcTlLBtE@yezA?c_J367Nb|+Fp&x8Cv&<1}brB-i`^eqksDo#d=ds z=vP--JRLrT=yPRuRY{tQ5}wE=r+ycOLc~0o_S1GT-`leI6etE#mb1D?rS0iLBAWM{ zepPmf>MaI%zBUlrfiLh{Eu+zE7HRNB-L&6?(6qI^)t#4M&)y=*pVtl8?ei-Fit(c|88bHNSeSmw6W+y*n>j z>cCDPDyge=vx(acbxVY4K2ejM$!M~6O*wH3plVUk&-NMcH>w`w<07-j^k%fH5KkcN z7N#R2!oy7_LvqXzFP_GjT8~h@U`7_uS1|)&jkBBI+5LC^GO!bLMO>Ec?PX59Co4dK z8A{Y|FAeuB?&xN@cM7IU2kNd2K{=a)Zd`@iTg7lD3AI5-igik6kHf-I2XMo7QWGxM~l_;^Ax#G5DFh}z3G#X)cRa&R=*+Zltb82SGC9KwEy1s=>M?y zmQhi+Yx}>7qJn^mh=7!eNDD(ZB8`9`T}pR{w1|QdQqtYs9RniLFf<55cOwi8F~t8G z#Cz}k?ECqx{k;6IwcokGHN(vJiZhPmb9U)kI>`IeGccWErTTR=<#h8sF%mR)4ZuA;0otxR0ZoeQhZa?eOFW$0Z?B)D&_G9Sw zy6ob5bq1OAL#WA>(WPJAfxFmxEcD8(Wj9R2VHT&_xN-w)pQA;3X`7)M#++-Zu7{fb z5j+$M@LP#S##_I;xZmdK&Ol8`0MxXb^tJ^yzILJR!AI;UPZwoP`!MLT5EE`N5yTLV z82SKF_rtuf;*jgJrbOcQwtjcL%O-$XLq>zDPnZ9w5pUZL%&_PJqPE9upUhU~J}0|5 z-X-0r0EY;&h%3VQ^_yn@qN`XdjgA>!!&bx9o1f7W9cMf#WJq-iwHlkzSeHe{dGrY7 z16u>kL8>Nyp0`4K(_tb{HQ1k<=MW{0c}5WTWU9v09j>efSy-x6NZO18b9zCeC^rVZ zohNQ%ZX+{K$HRHL(Z$~E;m&YfvB2A1l}2H@Eni|9wKvAf;Mv6jY&D4nM1bg%HE1$a z9HELIO={Bq!#adY>TXW^(ZDy2F101x*Sp&*6D5K4>U9r{j>U^1%UHoDW~=p(bq+!+an&#^r z&BI13t&dGyGFN(ao7-}l$rECsum6tEMW1KPyMesUKSAZg#GmE#8(ZUVh~^~4 z?luM1^DzbZC-UUXwT8%pv6vIlY!e{Bt3{GW6>a(Jb$pdKu!la&uYC~oajX75=$rOg zl31suT93^t1~#^IlW;^Tv@#GWi2GjnXe|0J`8cKV^6z9OBJYf2`3}waOEPDpi!Z74 zxpM@hQl0*+8x)M1V&oLs)*{YM9`N#@cf6YUjl1lb+RD_k^uc5${AT1F?m9ilv5Trj zyIe+1Dh6Z1#~(X5Gh=!#RMtA#ba*n=hsg3D4A|y`HV1}@ksO9EI0j?e3z$Ih9aJ<%*PoW3 z(QsAvUIS6ZVml3}K7`>39I8yHRJB7TY_+_^qXqgO8ASo~Sm7CZjCi2n;R|98tQcs2 zl?^y(qZPLse8_g~hH^gz@@l|ZQ^N*39~?}SuNUjKT!oGQ?3W^BVlA;6A^3fXK8hBs zKf%yHc`t%Qf{c_hfQ0=T7H@x2%B|d%yOt)uhwIBZ^`o&n6O5b;2; zNNa?(Z~e2N_w)5=FgPbMStTsVEpk8t}%)FM}yrc z(;E?l#_5sbfmQNh#M=ji+8@>qS1~-lecP- zjo`o_aTstvQLC{;OvEc9UO6E|CJ2+o9lH zFmbxH+nJZ9*1gD@-A-BzWVJa)7xchzl>4Tr7_*_$&pR6gkfY3cHsiAZ^5*Av1}|NA zihK>eMU@;k&XcjQ>>7lphK!DeOL1r#m^s+unU~JWmMK zvtHorrrOhiJ4yi-SOWP@GP;8?VHlc0@>xswkOok)zAj?&l9&2w0oK>!7xxIi0@jzk z(cd`fpFa?Mr}IcsqUUkdH*MbwBJ(b&up2h^hk`5h!eZT0T|%DpzTJaT)PtJ{vhuk- ze8RcW8=m&3s~3G&6gQJt`;sKpBuKczr-+P z`W%j{B)BbZs|nM(fB_LwII!uwICzYJVfs>8T6iUx zeEMYWb7)3u;dDxD%&%Cb;m`QZ(HEmOFhS9a)AdJYqI9^qT3JxOCU=!1;cBfGHG}q+ zXs-EphFCt^=tU>&;rQR3kbiN5QOJAF-KHi~_Bcj{-te{ltfiqI1lHVHGU%G6Prnk1 zx)XTpE~FO7MHY5HAP{@oXcE8LH_F^f11?w|vYtSqs@NRI5~1p0PVSVJ3cZKg z?yB)sg z?P0J!)LT~63o3hWaBSRP{gF>EMX?|O zO^7r1a(h-`PoUwRugzlq_#2LlmaRE_w$6ki=_re9a2di_;Oo*-uN}DW-A^~0 zZmZv=H8_4vrqe@=-_Sn!1vq-w$EHD=MXQkB6$IM(Bd7dv9eKuVy;GqZnmj%?lFZ9~ zms=^et^jOE?GvamhU}Ny38c~lJ&znh$vt=^Z;PQ}2Lz$O^fpI%3ZI0}3GQRG>h2i?q%l6Lq+1 zIajk;7i!xKXXY>fOsetd7ru8HqMryk1lv7>AY<9y_xKVCg-v_k{G!Km-57B^-RM28 z#pQ5R8O!Y?-E)Gm_LgttDJQ#z6lFrT-oJ8h&?1p(h6K+d%4ibq1AU9 z!w3@K1JzU8-zAq`Kj`QsZw1yzMcF_Y_U8}5aZImLu-`pw_2||oS16v9V zZ`*(D`Zp)zg-f3wfFO|Rr2}zb!2Ve+@`0(tcT(*i0+kHk$9w3XUFucp z$8qhr&^-Y@YL0uJAM~-(!gHf8afqBU-&UM}a|PXEDO8$M*qf80!XG{8P`Pt3Wc&|9 zN|2l<80;J)ETRr4;x$SfaLNv6>-aOc?{A7*XJxK7CG;XK#r<(!;(7tM5^c`A0qY^0 z&SsT*;K^Us-xiw2^hJWSg+D!C06*jn^B2WucPsKjl;UZ~@3C;FUL^QOz3e4{6<)*f zMmUEX-X7r~#_Pp@{Oa%i6_NLD5{-~JFVJRLdT=wbX>k(0F^$%w^%TX+2u3RQ6E_w) zZEk(Nr7&v0LNkI?{a&KYxEY~UY=~R(aC2P2@2@>)_4%@$_`2&A-=8iWaXb;Z+9iGQ zhJTZ3{-bdY+9Y%I=tra0GK0=J4>=Xw4CBJfYW$1d)3ixWwbRLqXB}k$OUPFncmU1( zrUIefX#=8o9bs#;v~=)%d3Babp<}9f`L@2g*>4*qIG;{@h%x2uYB+hTqRN57OlRe*@z@y?j=* z?>althN5)p{~vGlKR-D5M(&-h*N+S613`3Ex=8z9Lgv4Dw*UII+&J4<&k*RRoMNB; z^Z!c4Ia`BCXD4DWx566X|MQFfx4%aC?6LR!_p$%?vH#Cq^*2lX{J;ETw;vP$YW&?N z|Hth-U>P6)E-3?zQ zr)N;s>u`3`u^RZ#w+YA_&Q8~xXQ%5$LrDz$Qx3zrqhcqiOXc6QgRkk)D=S$Ts{{%* zi5LD|N&A1h$WCd0=P;aSFC1^U@-y0gdpu{h_3J&^`u*JWC<4pXpGp?F`zo$VhX1ab z{@1YWA088szp0+-XorN(GO;aA1p%1$BZ1CH(m*yA+ z!GSX|Nlqg=s7^+wEco@LT+NGWtg>dFYjN;U3Fe}gBV_;i&G}pe9qhg0HeMS*hq^n~ z=`y4zLi|qY1dZINr&8JJ++(&4#`yETW~!kkgl2ymNqTlXo7&$>pt4_iWit*~;&)p* zg#IR2Z+m$bSAJrN$wM{L=tS=-z{pZ`;*P%7k^Nc^)|NQw@5?8*Q?1bLu z-4Ad*J${3h%j$JRD;AG~R^l9tAxl23I@Rs7ogpEkMv$z)v2>k)tI8Kr0memGJebUD z5d>&fes>tZnxROSx2Ozi(Da-)vuPP1OOlj1wNjDvN5U<_G^%Xcfb~9ftVZVa z_p=vwxHL;G6AolnQO7H%8rsGKiSEU#4@sZ>4zfMx7_4UIB)F`mq$EtoW_wViz@i(V z?9&~~_3&!_fhaENp^`i3#33eBKzC;j6bio#BX7H;g@PH3U~CFimj82F=h$U{)LPRl z%JfiA9xz$JNq3&MdvHh8 z4CP=Buum;+SB|LWBKde`GQn5kp?B!7%3?U-%4IW`sVnh%yPdA!Yj{^euo6Q|%jhOr z`<&XQfI%n9nda%X2}LLYCeq|upuovjwBUomvYxaw*fhURl-*nf|J7oAFUcxEIYj{H zsj|c7$gGwbY%-WB;p-FY3|7<8=N6Dl>$gjcC?@F|MO#-bb6GAOy!Sxb3pjt-pjUd8 z4cr$;JekpJ-TlK?@!C5IZbWc!xFqbwShVY0ZoV6y{(`telS=A`pG|*yS6{}YZT#wl zUH^;i=54C@j?CZuyQ#@1iFhN}1Pm6Anguw>^$ALv0H2Krg@e_C`p#8om!)|To(p`a zLKn(jOv3WJZ2L{0Hqr9~#2=;af?NyjuHSzkp7grmlKc#eC(VBKZpcA1iC4H&SFC`C z)==K$6EAJz8K;EhV6k?IKnu-B!|N3;c^1Q6@etYOFA1-^#aM0)LxuQY0Eg3BcTC<+ zo#0AbDzOTt2b(&k?a~pQkmcC8K}pLmoAJFWl39Ey1JsG(@ku9NBVS z1U-H1=~z)m4eZCh2uHhPK4;K6NcMCs3iD*TaTkZtKZib60F0Wyy?aFgCwfOgr-mbw ziHX&6RBLHKL64$ZrP!166>CrGCoqI!F272&GGKAx+2mLI0(KQ z1eTI~j1tej&;RZ51Jh1SAZ*q>P5W8o$}AP zIe8vB9cHPXVO{EF0SF;a7i!|vN}~pi?u3F=ZrNxm%5vRaev@)o0~2&@!y*>Jpw0?` z(Ek|urQ_v(d=)(k_&YnbATvD<_SrESlJw5qam6w7ZWm)N)3di>q~vQ~m0SEn>HI0N z*i0+5@HB8mydW7eF>efFklb2;>F_G^H@a9*Z@GBBFGYEh!WXE@Bs?!&c`i1#|0^Z% znU+bMfMfWW?VhI4stUw;Q~%SJO_3t&&jPLS(GZ$`9MR_Q-S0PumW%cM2%{V6)Ysz@ z&P@?qIWw_j+cOkdyLw$g4#ZEhJVRm0OtyC*`C+gG0cscI1~wP$w@7x#D*rp{pWACn z3fy-I1p(ALx@W<~v!mlOlJ+R=+7hGZmDi)GJO!iuiPDymxg-kp+5c4FPYpZ)ilrTJ z$vUs*S(ExGznfudw%49?$IxqReqo&l=v|*>F-5utl&YnaW$sJxJ&o=HW*Lakw5OjiyAL~LATtOCES`%%whakebPlBl|RH6 z2%3-95KNt&KGyo5ZbS&ZBzI7LTkC6hbCJ*cCC#k)p`Ee@CAs^4Qm$&v1mfxBWVHx@ zJl-#r_IhkDzFvj68!a3*T%fE>3;;gEnl9#YJZ|@X^*kitE#WswH1a$;m(#spU)<0QGMRROiDIy9XQ&u6>+(JxNPv&plYG$3$G#@#ALjG%YWr z>Wc$ya$=?jyCLSyQdCO4rZqqu2ahJWbjKX)ywqHHWhcJHEv@6{L%bz7Ot)YpGL~zd zox8}m-@tezJx(*DzMjd6!Oku;Md0`mpqG`wm)%0GQ^YW#Q!6KK&~xL=ntd!jFq@Tb zI%IA>oM43x4{h^Z zXfl5H^}1mjSc-G+gGXj3Us)K-DO+TtzG`r~$l%JxQMM@Mm)9h0EX07pGB*~EoMwd< zvl<0{c7)hG&-nX4TY^rDdQd@UYby#glVJn6=H z%b)xZfhA`)S!Db38}pv%Y>bfg&tETD-t_71Ep(FPI;SZ5;X>f$ZepnB>_HVvUyG62 zmn^BWmWmR_$%OSGm_xz$NW}Nf!YJCD!D=x&_O^rX?f$&gMYpi* zfooWd{Yg%y!_F+>@jvJ#LmvmswT1G)9NbCnR3R8q%{FGM-aPSv{3j~e!>+V?gBF@R z5;=Ff%&EaI|7;0 z8nzNYv{dz|ixcsBPc3s#7n5CWm-uy0v3*UD?cTPO*L)kbPPbN~P#l=aiHAiy=wYZ9 z+sKCxbgYQ8jrz;-CWT-xihjAwB+6#qE1xJnd-nsY$xlIAWgHF2&BUd3F$VNk|7{)^ z1DT&~`kC2HvSs~Y0eEbhw^?mDrKlSuZ9Pk_yI>Z^$5Y{Rd4sD!dB<^sjZT{bLanx{ zl8~cR5d0;sMzy4Ppfy<~*XS1TbUpzh1D8i(A8H2HC`GJoHZZKh;M{2m;!jufJ%cFQdTzFMR+j!$zuGH#tNg|!y&Dq#XuQkX zaHEGI_5jeU;H_h~Cqw$)s%ReVHtFylvvOEZyqzk~ke|X--wKnWN((L%>9{g$o-rP% z$d(a$SfB$2keRHSQ|YQyYtBO`WD~52?<@z6o#5K zmlG6Rtsk2L%I0cwpP;qR#D#2TKU#xw?Y6GV@!BrHA5odQ@GXkkD&jprx>1{eZcz3Kw7L)^NhUy#5TbW53$Ryd+x5ehv6~>WuTvcORp^ z>`mfe$qYC%Xk9GoieU@W;=9B#Q8un%PyDGaYLi~;qAe^2r38QZ&|5OBJ*mFGw%)u3 z%(WXZF>v?pFbRrWlqkVBrpT;WdMX}GIiR|;*c#WxGUj!WG~T9kt3`G6cSp}r>7%r1 zVId|CkDr0=+c!N@ltO;wX7ClW=Cf-=@b)!VkNrZ|t%HkPN5Y-hWrt7qzqmSe$82v$_yd zEDo}Y)YlDDrkBl0)DN~=9-;}pZKwX7O@uJ*AlGJQqaZgkBKtZvt%b7U{drcFTWPZ7 zwx=*tft8(%txKQ7?{nEkG8J(0?V!5ahjK@P)ho>2ln>U&!cUfeGIP1FRaUJT%%&}X zFnPjaF}^2P!ewtgqOrLH*5bdLU%f(G)%J_#Rbk@TTiwTwh{S^eJhHF-;2yU(38qz~ zwLJu}B!`dq0Q~}&?ZQ*YQ+cj@Y=q z=oiX;c?TN#-pt9?t#w$g&&Xp3!`WP9x{4j~#5^nn4#zv{)U=4S(BOFJ4Y&I_sG6A<=ywp!EEFD^cb3 zkx^R^weoWp-o0V%;tJ9APovIklKNx!Yx}QZf}xgO6hB&Whp12E_ zP6;j=7RK{GCFOF>9CK5au%38c_Ju9~f(WUa!BP-mS4HZk$FHR4fR+XV{iPtt#&&O= zX1ryb!0({lLe3UPW`IH@=h04N-ue$@mCc}u?$Ydr&$uqin1ueTU|cj7 zX4xRoUQd(OdUK$gBJEcXR=sg4#W&-fL&t0;a@y67n-A(wwsVdt;45NiOsl1N@B#x| zrK_{s$}_gQhb|^v+299mTy^UT+v@xB9M9X9^xC&y?X?%)YW_6^U$160?rZN{4(0PG zKiR7%pZ6@rgPYsW6k*Nlk3~+shW_A}<$mOpb+sMyO8QFOE@s_Ct7ABD9RBnqRx7xO zLo7a}SnDo&b;m=Ac&K1;a4Z*fg4z^;&~r)w34OpRht{n{3{1@pf}1NEfyU^Z3b-Ec zA1#m&ahvJ2`aKv@B6muS-C3JpGrA_^_B!WOTV2R))Sz#_XoyxQVRgvzX|aN1@#X3nLHUhbhAl;S~dvyWtqLMCb(u>R4T4HFP6tKab#NhEp-1} z&%N&Uj^7q}KZ@1Kq;;=iFx@82w-2gr*cQ%~qe!r`>^kxWXwbIT9VerrKF5yu<`LMb zck{tpjyB3xViTP6ccQEHKHo0FOywRfN(bYE(Lv;=X(sqFm0<7fncoxYJbzs}O#UAH zP^=5H$&WA;6hVBEeq~ked$Qbv6h93Za`PUoH)}M^-N);r#J5LIGG5tZ{2i2bSXmj>{ zJBJNdChsO@`h=AjDpyTUM`HIslmb}vw*Ivg@Tt=OatnabpGt-C2D+=m6%iV4%w8pv z7ew4_QOlw@>l`8Ybb{6cOGPXOYx@*VU85`ugTX@fL;kk=_j6>tW|14C7JI-0Y-Y|; zF6;KzOrNFi9UH^pyKy?~9!pWtU$-42utsB%PN(sB?+0v z)$C%=60)OFNDl&Y2gOHAjlIgF?m&nWGdX_vKzV=Q3Ko*-@$3;Y3cd_z=e|RZ^)x;4yF|}xu>&$gRN`weYB8D{=6cdZ zsHFH)wqR2-r^tZXVldq;wk2sDwY$zB%Yo}|OvQ!yB%aerp4)Mq5!5ZpaUp9N!v{sg zJmj7Aocm78{d-)d!HXGnMy1Bbqe1i`39j2&MmOInYH63NU=d)sF*mDioB)2V006a$ z7z|O<`K6Ro3idKIoe66%T)K`Q$>EX2%Q59-`%sHXWkrgT_<4p%{obSt^{<*L)#XFe z$rHT!&uaE-qrk0vx9hSIK^LQDxke}3>wpzS5i#K+U(7Y*Zp)>#?b=NS)13vX6mra;_1SPz0k$3{k42(P*; zfyCx<%)+?SO^j!}#Wp_2Ndne2e~X7e{0;RELbl&G1b~p{D#guC(a0X%^71H^1g!=` z=f+o-vD|)$g(Agz_jTG{$`jTgTVPnvH9;s~5R$N&y~b@METy<*$cpg>TldraYJLrD zB0J%Nh-Q}Kr296AIgy9lNy6MF4&tV*&)hgq)@+a0lL+&go%`JnLPQ*XWdRN9p`d$P z-+Z$0&MOF-3+L)H=Y)!L446)<`EXfo>8AMMV`#~vCa1os&b&=1Q}piBl3?rUHfoa} zJe*rc2MCtl)+IfCj>5xu9!Eyinw8x`JaTsEL3pVd>D#HqRUG#>?*_7tzgArbPFV@G zQ`R$;fb+0lcH8Kqq|l^9G|n&JQ1WxvuH8E+PxL7vzPty-WL{b!Rsi|tQ%y3QcU^75 zV+xzaapDp}aOa9&SOHTB#-trN@L4}C!BZ2<9?{zwrLqn0EVf-_e3%1rq+@loaz7|F zf6*SA2&XaBD{r%Rk?A$9&gwV(DHKxu#o)(K=T9XGz)QlFJswh5@9bh=&nLTiW+i;T}3Fx z&Bs#9T0lrb<5MhgNsI4F0jq4Pd5jXWR;E&0{2Ip(-5$wXoi`KjUA+C`cjft$oM6Eu zF&}Ab``Ye%9|R9y2>nOrE|qLM)taj?{~opF8?OgYW{1z(bGdB0=-@x~p%cZ2xl9vd+AI8swDIv~s~#BYg_dU=w~1ffk!~37I=mg)T$YGw zurUf%SISc(*^!3aJ!Uo1jccLr+ss`8}5#)k40#x2XNo z?;(y{XV9ucRsH}p1XejU^d>`=jQ3Fshgk@AbC6k4_#K+LYScz>j=$egeLW{dz2&JO zj0EqcA5o)BMqOlsxKGT4Vx3KH%xAqfZ2>tCjYUcRD!R^4#y7r18~V{1!GxS$_)qVo z!HQaJ0-PHHMtKzmgT6r&lBQ9+M8#U3~*Zw#opPnMc{N``9*`)p(6EI2LE8c{^6M zf0i_JaV*@{xjP!BPi(Lo$7315s1s1$d&PCtE_lEZQ3k_fw49Z zb+&_)td0;gf6&4nc)LyGf+D_L5M>_AgjHFxEpv~9d+sCA@kuXbWS(@uhS{_0IC6H# z5u&$0OC@xd;WZhyMSSaKi)1sZKGt@)Xh>X%p>)_lmI8cr^@s1UvgGiF=lZa7arzA> zYdJZRJufFdF|YVda=lFc?ouOtkBU|MP~5#GdcctV3haw;MJ*wJ4;hgQP>Kt&dzkk1^R%XUHUgJ<#DLRz`2DBojVz{|Ke7Su~y*II; z_5d6HVuz{+YaZjFicyd@BHX-les^^+7zn|Cg6Y?iU#{c$#9g(k|zxkU~r#+~u;>O4)lHjTk+3y@2vVdX@xOqo=z)DI74aMz(Sf;TQM9w7?dvjT zH@g~_!`Nk_gO$j{c{*kKuuE6A;r5rGjNUnOCQ3X`R1Mv%t|)~b|IYryK;h*B;!Q3; z#f0vSvc(%;UC!-WNLuH-S4S`%`6{&+Jg66oU)Iw!;X@82ahb2uyaAz3{STqe+TF4e za#(6S_-rQ)yI>oQZwOnF{plCZsPzPR%b6EL)xpiuk=Y0_>Gjz#RjMOHqIM62nA&qk zY`e-2hs9715}31ODT=Xp3%egbT|pR(FkMkG-{~j4vpn&|0Dq-_lgqYs85l>Yy%Nap zmCM4`o7up?L5*khzj-MXuf82a*Uge9_YBgX%^sv9(r|NLc!|EygCj{7%u<=|b9%@Q zzZ1nVE0wHtA$J~Ep*STqphyb~>roRckzD1gDisa6SCIUWonE7qbBHp^o)2fc|CT^s zMxey~*@4!<G2Ja)pTCp|rq5kB_HVP)#zOj$_B>m~cJ4Rkx-&8j5!q0g|-=??hN!~}#5wQy9 zLl^TCxm}uvYpQa(oS?yIkexqCdcueM zHD&KzRG#PX7YY0`$8PU!QA>&!0eQh|T!!36PlCo^ z3Sjz4bng@hm!gGj)moO0>vGaJ$?48G%NpsIimp6a=nNJnV|5o8-gGVK#mOFeE6;y0r=YOW)X*)p zuIBliZkltI&2;>JxXIieXmEEGMj4v}ynSUeUeSo=K0 zE#vd1p!N}PSVIVp?bag496g9~qTb@n5{a8cWX5=J1YhBv@XwETF5M9p&pa2SfN1#q)OFUE zi)DQi%e!s0|5~^pu^E64d~r(%)g_jgTguHBiwo-bpX?H|Zg<{U>SUbL5X)HXjA6pS z#Kp=UBKi5y-^}l@aDvtuqe=z}(4fQq9y!X4712~986aied-~O#`z{>AMF4JHt_grW zT=c;uFw?(adN^vaV5tH-H0+CV_I~6I7kzQ@$Cvlyl8ME)Vc{=q;`}S~27vmCgIwEhF5@;s?D$q-eCsJdY?He8%Oan&3i;fvC znP!V#2LOjEVaBA-Sx^(f!CpeCC0ZpuDS`X|nM~oMYy97yOZe&{Ci)t!}8jtE3s_Ux`54o!z2=%@$S$QB_}j^S z;Zoag(YEvYS!w@mddLI8t)nc3WRKeRj69xJffkQ&ps!~}1k_Mg&fd(DHGw_94eL%FBohjIUcC8%%(hjAkM_I1%s{#|U#nJ?NttxQ zt!vN4Lm%gH-2vc$iVtfNK21Y0xf|OPJeF-Qn#-)^?*ePDv&HWH8b4%_F3LeZ^Yuju zQw>5;W?f`)fgJ@UT+!S_BURo6jln-{9;wb!HfVbs>*u=zMjyh{6Z2&@lxH?=qS67c zDsl{zP>i_UxECC=fLB-nT{_nr*&YrM@SN1Ar|TL>6iQIC#&b;Foi4u3N$zS?Q_13D zOmY@`y%X?+X}Vn2FWf3|D2N|VJAk}+rZiGJbYu;G-v|ukT z==LkGiRkD=Iy56qc9ZOudE!#LL*m2QqQILS(cgt>Gzfd;V9Jqp3wZ>*M`U z9@~kLe8au`zT^Xl0rWSW56N94@K!s&W`o;h!t}cn|2Qs4ApyqbPM67@e9n3=P-Mt> ze$L!$1HM%eynFlaNxx+X`H~D5goDZ+JkA2}4AA}E*kS+o(W*~@kvI-9cI$1F{aED7 zZIzGPNLu1M2jGf}Mx+H$2F9U^Ni<{kTf|`@^>WNL)gA(~YDI6R)U2nIhf^)n{sE40->-}m45?$tB=Ho$RHi@eh@t2s$kHRUqC z!Hlm=bJBcUB8uNl8lwD78?5I7$i$Df<7ZRpYuzLhUmN=kFzr)XYl$2dn){o*z6BC< za6}NQm&?iXFm?)fm)s0UnqA58VYnjH{_i z>xYyae7nsEkiVrF1%D?qZK`iSaDbMD0n7JIQb}qWzk~}-zm0U9jgTeU)BBJ4G<4zqZ{dKqapPpP6)zwTa0)-Rpa3= zduvIMIAL*P;WDjqz2H=dIBq?tGY&}yC<1$}u+4^s=j2z@_IlKLIsCW*@+hmQYk&?Y z&uYZapQhmB&{wCqWJFfYu-K>>H+hIOs5)4Pv17@Uj$#+~uH|LTWb7j%)l&0`8k#ve z!6W1(YIBG?{^Ia1nWqPl!^Hm?GW+E>?vKnR6>p)8;i7N0;Q64XNd~L6pVnEg%BuN@ zy-^=OpG!tMz3AOMXrkD3O>(d1!fWxNxAlk6zTp11B_m15knWc7aBu`fp?kwBM`%5v$p0zmoQ zGa2E={Jj)Q9L=aXl-$Qgbz&0;{iW$^$O{b0Z8y4AH^)Ae;1J!3W05|eD)BAt=K1xF zOUf_*SSI?mUF)GiS>2m;MgE^vQY*xk{5*b`itFQLd@znUpuvKgn%f>W$kz9B$Xr zXK6tj1?tD%phXYQ-#g^8!kg9QKr&Bv?(5|ZRq47I50{s*t)d_y2v&=u=S0jVc0J`B zznOq{Uo9FoAKz?Hb37SSwdo#rj4G+xzFU}$zmp{#Y&m)p5-b0n{YN{x8LrRRlPAWc zS~r8EAOxv4QiA{VHRyejaDr7LF;VL@2NW2>(WZ~dx>{%Ho%5cWxBm#bP=kiTcTc#j zr$>LLE>E7^Rg)+2T>sxlfWiDAil+CPj(lB0H(hMKel z`mQ3X0VtB4E(^narbyk(FYmKetY5gqX5Kok7Y~_8P?KcfG$v zZy|Zq^)sw3x5o1}+c1oa1It^)hB)Sc9P{oUs&T54*>2 zVHq%rtYx!aT$KW1ksaoe{1Y|vBli%Y-hzAUe?bLr6X!+%q#(R}^C|fgp6(BryKaT+ znpHEtkykfh`b>DFjG-An^vp|E;y7gTxC^>Jkd+Lxmobi6F&`p#fr5fc?91A;5>7Tb zzs}eD$IFqL8AOY{Kx1ux_=sTNlrq}LBNACCZegOmAIU!sZQ zYZ09UYQ6=OWJFQP6BQmyczT%K@<2m08$?Pb^4|SUc&S7R1!2ur)Aa(6j7Fb2`oSDU zW_1u?-qj@oLEWePZ)mY-Y8&&2O|0(Xda^#`etAVwyu9wO2OVYLS6J zX}f1Pzc1p-&73@h?YTClL=r+>U*!7P*7`?3%%@M`aX^F(UKmb|#fT5xCxg+UkUPS> zrvM2opZlDGF4*8!9RLQtL8V~FPBun=6fe1@N(I*4XgolI2Am^7LjvE`J=vaUO7ia~ z={}sPX6%VCI7iKqeV9NUT5Zap-XS;OOtSon!|{_Pwlx|q>uktcm+uEUpC>%}BB*2M zNgv+a90M`^pcmfPFNo-Tmu~)IvjeOWH^4q#ccIQ1&J6=?)zO$QkNiqqT9=3vs5`vy z!pkdeE!zhnz+q=L3ZBj=X(gxiz7Kh4Fc&LlKP~sOmO^E3l@ix;0k`1S--7d+e<{nd zNV~g3_Gd=MZ0nvA6z#-GUt7Lj7X7PbBYrW-E!tabQCb# zH&+kc?4cTh-U=Og8S&vdza5fBBPJ3@?1bZ@Z?Jmr?K5!+APiF^HGsN#ez<<+HwcvZ zU;+j2OuD?;N*F64=d;UzCP3pO7ZVq+ijQ-9ax~aCpdl6d?O}Lr@=Lf{B^)!+zid0B z-7LWTADi~21cMlwlsv5Wl#`q1G-yystTx#f_r} zq+vrk2nEOsw?gwA%{>4wl|WOz5ko(CEX_l5o1eCCBnxDub$rFXerK%*AYAP*#Em_>P!R^w6XI>y+xH_D_b9BH9ROL>!HqzdXi{-nE#RG18(TbpX zq<_{t0@4C^BY+mhz0TpPr2!o@jRHORPne`8z0>=4t=s@!NZ^=Gy61Rwj!#rVd=eP8 z{P_fcD@x&;V|9uw2AxKr05Fsfr)crux4@;`2Vo&v)ZF!$L9Hx|gQI1P$@R@^55&E( z)fJF=WTd_hj$8}iCRcu^Gb@TSS7nGY>JOUfbOp1>l#P3jh-v~L*NUYUzx0*cOSwe3 z%%I0m*P%Lo4kG;D5N_JvsJXZ7- zNrehC$6a5ax+i{3+4RLdH4ED{Rg&Bo ztIAdF?&fnrO6GCzt^>&@EOe#`WA7vuq9DTJ>KG97hdqj%&i}{`4l%d=ocke9S!1QMYV18Wrgg&kQQ6+h*sD7?o-~0l25m~W%z)k=Hjbk?TrysHo6Ax6KOmwf7 zuyx5KgmQ7&Z$Iy?YZFnn^#=v^8zeJo86xl%xq*#uQaDBfxi7TccI~Bw zTP8_{@R)lJ>xWMe>E=r9NCoWr#%91W|h|604f?H592Ymg&pmze=V;*XcrO}zFh zEQ;VtnJOZ%xPZ3I*9G?tzMC#RbW2R0N5XB}=RSM-V;E3*oY747@9u-Paq7M%v(Q|1 zv5U&bP`gWkl0v5zAGXQL9)Ql!b>h(ueUuS1>rIpiXjy&B(0&X3{XO zZNN8s!<(rHpMiC^Yz}yc%h7Dv@X3hLiti#)MrEq3rh%9^&d^`e ze@KWXi*jDSA&8^th<>g|$wPq0RL829DILe(sPUqHco#LE^W$zJr^${A5yYVus`jrW z#8Jb|{B@xgalKeZvOJwSs{k=<@r-~e z+P%?q%;HKktdF$s$yvsCs56=LH=(f6PiV$f%Td@nAMeFJW-XV*id$qpW_2ks_iE`$ zN#I1xaDoI#Aa0GReNWC34*Naq`cpO!`%oe+p0zNyr{Mcq-c{c-g{3XI*8qCY^Q5ue zZhZrqlscynJ^gYSySh~=$8qu>ML-5U%#f}zUUgKC&SeCj3?d_x(hCjqF%{e5N&(74Y|C zY@2B1BPsUDs2ECj*$R>B?OprG@2vn=bkM2|azgi*90!RRu`rS;t*JPSIt(f~a)ci` zCxxSxM-p}sF&W0vlcOXNXKtcZaDL9$@^f=-TLZ0j!jq(#A2POszUyVSb$r{WmhZc| z8FP_x;s=$6j@ywn>cQK<8^IU8S)BU>`h30eIbH;eWq^M!csZMW0-3fhv)k}vfcOS<jvAk@fEhCi)Id1K0!@2=SMBPsx|MOPh8G>8*57{bi142g{A4_ecA+$~c-%#?Noj ztpp#;8Pa2aon8rEh`f=yI?#KhYus3qeg--IHUXkj&3U;j+t6It7D`1E%dGyidSk3s zwM$54eDme3aHC|iMHM{?r3k)H&f%IyT3#`+f|}E43yarigOIjq!97?ko1fbFzf9(8 zosdifmhmroSHcSH*JP($oCZ)HUcCi{Y3+wLhki34Y4mfLuxJtTWQwYfpCJ!#rpL)~ZN&=%ymyK-=7eA#GJxrabe$#lCUGA+ z&`H|I+!YF>>K1T=L{WJc1rtyV%sM}rZYS*h{HC>H*+jbdR=ybnph_%+~z1PW8ROF@3W1rUfiU{%C!CBQmXV z@a}=U%oRx?m^0X2E*!gAcC(O^KWo=AbHu$(ucDRO$@1JNOOP?%AXOT@ft{v8kMSRDrT5E^ zwo`MG?1N;1Qgog9qnDUBDt@)EAOJ{?@dI@wFSh4ZYPR;)sd@^`G^Ld2tQU7dG2g`~E zu^zWPfVoXyMd~327D_d%e(aa~@qE||akC}Y5PkO*a1u6Nwy`x+BqSdp0k^$eUj)Ol z-y0c8j#Hnb@1FM#P|asO2z*3Ht+p>pk#^Cgg)pEO5oCx%pK%>wWySO(JZ zN5^1Eyyy<1pB*r?j9wov?KXQ;vxJn(F zAsPIkX&{66eu{VLpkpuZDPHDAa*Qy^%G3UtcmXIGXiglSmUr{?``-tI05-UpS~dKA7k_aKu4UDT z4*WC-25qfh2aM)?jQl~&+80{o zyUHTC?$+srWJTv6n}w6zL>O?{%}qF&p71-EHcpf{!``dE7A!UpP6bz_+z5^%_~R`e zsd6zYaR2*0Lo}dwtdnV`hh;TEYHA0x+iMb|l6uuWnw3syS4@mu$;^qVnqB&wqx364 z2f{*u>R57Nrw`!gsQ4;$;9s0x7bK^r1zsz828|TBO5ll@YbXq%k+9e>7~R;)Q>l{H@1;hm?#!j#wg*fZMWiI$=-_sk{Q zrB1}fTByi!2zlvR!8btbHLybO%$#0u(08J0h*#%R)1jI#V*PKieDJ%~|{3J05M)tf;V`{Vneg{O8;47Oik544%g0of{-C4KO> zG-HGvjhGBvtdGs&N(yj7j$`>J*Qe{1$arn%u=7C`DW@}|T^~X5MBp-0EW+S}7at}3 zb+sbvF20AgjA=9Ac{B2pVrIfk5E1FSedV6>^Y-n#44qrIGgE@LQZ(S(3;I0Ge_?oJ z3Vbqne+(2za;{FT_S_1Xam3R?3nT9+6J$v1ob!nBWksdG3^4b?270#j>ecU#G=uz; z_7bwKF{wKf9LE0DuJq03R0uYPFw`Tg2rpws(<(lRqnQ#0Y&U2Okd&Ko3w>IE2w0!0 ze+qm-;lWusYL?~^_&f*&a{Gghc$tbn0luOAne2_vhcI-bHE3h<-_iHD6c>FvX!_&9 z^XPMxhsX6U6@E4pg?IVjOX^e6kr1<)prDRh%6wZhShPb;g1p=`8yvmHwpwmhmh|I+ zMDDtmTk@hk?8Ok|WJjgNJBiwD#7=d-7{0MJpWh;Ff;1jow{0~rcw$+R%$JIHl~?2W zZd>j2*Uz<^rW%{?Zc5wUmX%F9s7NT>CY1DNKx>mm3oS!^UwUgRQ z*!);)9Nk+rN8x7v=e!HEFC^@gqn-a{a1VoFQ zprGZEJ40iM6d_WcFw&l|(9-+}>M2v0qUn*^6mJGRHmIQ3->syZIq#X9- z`F51CH!^DIy9G1~rE|`hPun+7P`w-7@lTC8`9+d^9)E>PIj^5|20@HWtSoSzS@QOf>|+B~-!=pNibk187TT!i!buGxbAEiH2fObkCxnXZ ztlsKB10OoSAR?paap)b5X7k|TE8msovpjyr#g{|C=O|Zpr6PJ^fZ`Y3A2@ntKKYy) zI#+Dd*@XjJLXpq*4GQ)6SKrUrm2@XN+b4A zB=pWph~#kLalYL4K?8@rPiLN7Ck!OP7V5adJ1D77^O+?w>XmAUmbpyV~k!m zH+ZP{R~p_^@5y>Nfr#1DQ@ZEo` zs9(!6@&)9y69HLJJqoTb%_BvxrnMLU5jlUag5vv{ za(Y7nWeOF!ho#S)dWfMAx%}aGRDbgQU%s!O{G@!3^@F15JKuWeA4IQ`{r=Sd{4D?R zyRUAK&aVNep8vW=rpVbN11_8UhSrJMpS~&#)5|S;x~Z-?C0{*#}|9SWR^N(3(ziyg5?xqpE&2@;&ffj#>5b7&6K$`G zt~as?NX`-#ZvVAkkNY#vt1lac#(yB9r~l91D@<23IC9z_}eR8xU5ovt4AtJ z=y3Q8{ZGXc9+2-bhppK~v`Ku{t&YhrO}ekJ`B~5Jwf}uI{il!q`^OBn^M8QoDlS1@ zo?$A^szJ1t5nz%{B7U0^T+%B z{PEtIVj^Tdh1xY9*KauTm0MRQ3%W*j1%G@yD)(`fz43LquAXQ)NxhcC6zJx+A1_?X zS^oV?W!e3TScUV~9F{WQ@bBLO+*|PAqL`oepg2D6#Tu+rP5xWypTB=9xOkR$XaPv# zTAbfQZ9psIZv=tW!lN(v=+{k2uvIEr7pCLxKNK1VFzdecA(7<^Sbf6qUQCn{pQX>AAxDelgK!-<;Mz z{A>RE@6OlX_d#^;@-@bsFW`Y6rZ+$l!@s5J|II%U$>{4y$3RjELG;|}&le(1%!9DG z{N9}Vx6;O~nm6aE{|fQ{y}SRHu>XhS>0hGw|Bd(c|4!-uJEi|)AMxLm;s3cbyS_QH zIcvO_(y!Q=gHr4apEX+i>YYnRPk)`LhbCI@p{;gQ^7v4Pvqn~Ibik18xX!SwuV9

J35&tCA!!ReC7MqSacKO%HQiXs;cUc$g=JThBrzseDKTK8l8+`-KNjsbqe19e%Sq_xPvRs zVA#BBLC~N3_WyfpRqB7WR1CP53a>`B-a8_S z;VPw}CgLwMgoG;P=Hcj!R+cE0ap3j8JN|rkU%ojz6#-1toE%oO<5SHw+Lr#N96^Nt zy2_K^S7|h-h~ec;A^37tp`XO}2HkLXS}tb_dwh%YpEI19cnpI@0n5`7I{>x2d#)vj z4lrbmX7|>wZF(an8_%X!unyoRxk~`yA`aqps&zWnYyj}x=>Ytb-Yu+Y)?rs6ziM{y ztDy7Rr{m*Y_8oxC(NVV04oKG^7bmPsq6kPi9(#ZkQw5m}ym!Ma4u1ap=GP|FMHg^G zk3AmI8MBU148MB}Am}*@r+|^KL=cg@Z{bcipiRnvn@_w~1Od~D@v0NY@oIaBWftZ! zXj9i=8VXOuFo|6?W%%_3`fmGb;C4u9rIQ*rur~Jj2GxChLymQSq}u*NkR}`a3d5uG zmSHYsXzimKMBokpLZn1ol*cMdZhJPA>Yf8IUjt~jPU~)F*`N7JZJ{EO86Nv9Y!M>r ztvTrEQOAdIeXp8Bg>h}vPz2?u0AiN1Rg#5m&p|M z#{Q0EkFWq_e7j1~wF20a(7+?2dSpH8J?k79Qep4}RiwYFjnI1zsI9(C7F3(@KD#vD zU>X9dsP&YX`>vAl!*(d^l|*gVwF$bVEU~8a7U`~XxW)r9VN8Ehsx)fQw)%byKu+K| z6>{Yooz0~b0CnL@NO#m*AEU5mr=Z%~p^aK(+@9KY>{^fXyF^aM*p2n6$YIhq)6Pzv zQ7|nkHmq_(d*+2-tu7+*E5JWr$}wu)utQdSGf(1`(WX>cyqE|KNJMts?0Y?|HwsT( zPq6QV$;S!*4qb_s!L_0v70C~to_C|-^Gt$*@x}7N8D7J*!u{Al`?Pbxs>JKSU`>Fty3019_K{xN zsmFA+66(u^5N9Mz9`IG971qxM_EFUUdshIzX&x>+-+clAIEJ)l0g>sN&UH9tb^NER z)HNbm5r9Uf#1bIYIZ=I<$S$RNSN3lH%Rp9>4!mt>eHB z`Sa8v<(jMAb!@`7#Fg1Ia^{;)QpAEzZHj^&24`JMk-BO4v z?ZnEuM-v>YL&dojZXKRR7lU!GWtA4AJd2;-6}#s3_;J{+fBrJ6d&i^qU5ZXM;Rkl|Om=m=DKPrhqYHD}bS(VWIRy*!P~t8lta)jw$!&<)ub@@(ueubB^BB z_{=jvY$Aarl)!1;62ktyH5y<#eRJ|f&?xMzRc&0xFBW)u;md6}JWwDPo@Qik;!@`@?=n%}fFXSG4Ts(?FES1HSPgr@CSwBNm8WUEKB#M@V40o)FX|Y#!FT4Lb zrk*og!DY?T(4;qBgJiQ;4zAq0N%8z)BX%!l)V}%d?50^jg8ysf5ko&zZF8u-PZ2;S zh^9qk?`*e|dsg41e*r)Xrv1>&?O#~lG@typ-zo_uPFfd*US;vEeE zN-ylU@+EMgu$6M9Mbx7mfJ+-teB)>+Bs0q>V5h`*OU6B31No- zLX)ai!fHZ~iw;`CQv%JGB2QOt5GpVBLkyfg@7Xt_ltM3RiV5a&EiWcF+LIIcb1<5R`ow99} zkKC&j)9DgHMUpgW7OGGGaAp2^crZN%(586t=^K3KNF4#qp24f~6Pjl?Jf6~trU5n4 z(8^q>!=vTOP%Rhn`{1{aE=YeoWwRU(wsGIiSONJ{{W*3UE;=sv#RK!w57j9=TlkDs z+<{<15{g|au5{viK@ksF7wBK^Q7Psqrar{Xf=X*o`$cZbAgeYc-kXr&>DDjXb|%t= zG%2N8rp;w-C9wK# zR&O_zi<6nsJy+}!RvuW@*DH)~Le~MQ)zLJ_#kNOIy3g6Z$P@7ET3OdMB`Osv0n}Oe37NP;f3h4E1&tU{5lyw-XCCg1cbMoD5Znk zM}uukS#>tGQ6$PX<8^v6`!5J>2&ws)vzYb7F9tIxCP$Ln5m54%nn#r2PH&Af^vP+x zpl(w%692Vr+65*;IW1M-$@44fLI6lV7La1ANt`nE?=&M%=RjqRUhUQh-GD&B$Q(k4 z?bh*P$=%)X`pw&f#@fSQFPvnl_YU|#phC4Gr7W*UoNp8lz_V37EN9C?tieEP4dzu3 ztQ=Kd4U7II62Q0L96(mvc-2R5W~x-YwVJX_K1vBqEO4ybZp+v? z8fxuR>p9=PdR+EZN#yLwtk-VJ@o_i%a@79Wu05k}M^PeDC|3Q!jN$7^Xbvz7)JIhW zLKQ@yDm$wc_A~~T6mXr7nv)d3@iX4E;drH*qw$tlq_juT)^eYl1! zUDC*O*tT4V@D2#G9*8`li`S(ju|4Sd(};C)Y%hfyruwh{+i>w%1lecUuI|X%Cw26UdCssP?K-@H#ytIcynY z2Oi^&NDCr|-2M|VMs-W7j{~hwF|~(Nal-R~0%o=6P{_k8npH>SZn2S9FSkZFw9T1> z@oj7^E8l54yX6$-jn?kKkszGXi8tjU1S)Lo6}vq7|foQ zC$U3B&M`(HF%6#elf9!nRbyE(Ql!^EdQ3BGym=(x*or;IAP)Y&vHRKX7k03U*HKwbZUGC7~X3%<)3QO{Z)+1-6 z47?;|vGkJnxPghz$u$yX-Q5{&%ZUcS!TgwjWN{?SYn1DRnYIc!AUmUZ7>BI!GOPva zVzL%LZ=>q&NSe%-5dJ|7u%}_*9pgdm+F@778S#mo!PtOoLpy#1BOCOX9gMnE@}?kF z+3&}6os&ZfKn(>EOAvBdM1Hm3!IEykF{Jq#xmDA;mx9OyofJ#i64|To*SFSoCBvE1 zBGjEVc1OOh0R-HDO4IZ7AUc1=<@6wvfLxe)QSvsj!?Zgt3Lt?eUEr}!2}E|q6z7^Co8>K)87&E<~ zOUY3Re`d58l7ZMwDtY!j{L+yKvcSd$T6knaI1Yr~^8A$6up~sXMd3(bh%Cc(=f}I9 zpO-L6bKk7EtpX-n^-+RVyGwZcwy?@FK%IB+&HP?Mg~|6HoixqO#XLA(I$%F6*VN!v ztX86g=q4&uXN#ZqK+6D2fSwV#?e6FVK;FUlK*7CqF9D}w_zq9y1P#3yOczWNA4RMG z1&gbeLjI;&ipEt-Oyj(WTHI(QLzO-J@Y4-OZM~;W{jtIo;hkM!48>}Qb%f(ShivQQ zaERF*^HM&VOalS0K7ITPt&V8e;5%Gn=!^gI>kXtOca?CXhYT?IXGUKkWJIrxD*%4? z<{BW`0-yPnXYAeb?9KCaEZU>X*(B3y(?xh*5<^zc?T|T2>rFr)7CW}?=c^GF%Sn-G z4$C&b!4zI}+WINR^iJ9mK3Ca4S>?G_@F>rKZC3lcP!3YD>iLAhtAu_sJ zz{0|z6QBVhKX;a;U64HC@I1hmSpVz&zGT&|=N!N-b~^J*ztG*!WB4Mfp|5u6t`)o)BqaL+xkIOsNwotF4u{ZAvr4oMu0Z+g5PD68P!nHR@Vdk zE~edToq&;uic8de-wQUeh|OmwYphu7jbx6VA-NXEs`Z$cw7Hu$<@6LwoxtnuYtd>| z7@WB&FZxVHY~sHFLZS}WfsTbvLu6jS?tFx%w6~64yvArnELO~zry9sfo0zQi_PAmq zjkeqoH7*stkC?Dou9&5z76Mg#q~`5%^nBQE=a33l9@sUyy93$vRirR!0a~T>NC(cqqP9tlPu*iU;r321>G&D%RlFZsUCp(0srs-*Q)hfwO zh=Cq+djxfSdnirQC~cTp$&}T-IRq9d99gv?5OA5Xl0QxTx|3q(I|x^D?P*KIi$bd9 z&KT(eAuaB2b3Yy!=k;w%N#@?BosOl(zu%xZqg&Qp>|d1TH@%{;+QEH>t}=J@q+P)s4#L~QZ>q1 z=Y9LZW4@BetW5-_A+4QBby=)-bHe%sWR+ei#VqKtGvs!Q{;lFrTZNB=j8@mq8ZofM zARQAyPR)K5?T=-3+x4)-y$Oe9LDiI}O*ev1t`gh<3s=$agF9;Ii-q&yMVPjNqdeQa z)0JI+XHRPpbJ0Oq1;?bPTdMV=V8NkoQh7-f7h28D+SFwlo_LU1YO?u_G>G^;Xf<57 zT&^!8zRF(97&hhUyiQ_0dvb@inOab_wrwK)^_){Q%}GMG$Qd82!I=~N)aPe@9h3n^ zs*xg_AyEcs$bBKRY=I&9xdzLnNr4-=f+8qR5d#NJ@2#s`M-qkQyQn zVo`n4IHkvxa=c?6T6DJa$rH-J^-?S24S#3!>PrX_6$g4cmJ7`9_=EGT$I+53Uxm5x z0c~q%kUHiG^p)TFkD>x6O0GRSq8VEWa!A%Ptwl>4ZY3qBHc`GI+&MtTmQJ$ zr#4ip8Wfq9Q0QBhX7CzG0%PJnyh60sjoHxQJ#rB%utjx?;OSfc;+b)*m|i{jfqZNMKJfe?yp6yWs}~ z3?QlyvlMRyRLqhIC-9o*EcT^z*YeN1QGQoxDd>|$)vCKSOkI1;ah_ftr}%K{=1K1p zH5MVcG-vZ<9aFe-bCGcFpuei(xIb%bM#-U3)rm@@kz)P(oV-ZXH=y{|RA|+CXFqcs z04VC2PgrGAP1k)M-Cw5!qyq2fX%`2AJqf=x@3$dKNUkJ8Em*a|@Wi$-%DX$?Lxth1 zw|dmGrNGbT_Os2sq>)}gU~3~_O6FT%UbWG6#*f#XYS$ZaX@j1aZg&wfE;-4&#;=7G%1FpssM?7D>5Kcj+uOuDp>b2`Nub z^F3b2tZLHhXoG3o-lkM@=%oDxWxoBq4ui>eIZ%E}uQ40PsivzL#ycW8j^sWi31!{5 zwmGG%-@7T8aYV3sP-TunTa)_A&Oq6)gMEC~Y7ABL`@yr#QO-oe7f8>ee3}mKNhP^@ zY2(H?u!G7`|2q#p%tw=%RdQL6i9h}J+8r4iP4@hY!8Zk8>w6uoGLZBgXy``=bqgT2Zy|V>QezL9*?BSA{urq5-*L+i z@DT3puk61Z19QJflXz(rE8WZlod&#g+&hNg`WR$^7Bt_`??|Oo(Y7-d$uY~bT|8op zkUqYCrfogrXlL;0IDIFeg475c`fK>Ncb9v%iXUtcO1ekv zA|O|@G$7`^G`Zbzth9c3dp9Q;u#137s&eRGAL;)IxcvSuvgjN>n@D(0M0F0IeRZ;v z%l9#2&3tbJw<=4oYrYAIyIK#qzDH*&y8Y$$y`IF*R|SJ^Wo@1(x24zRg6cX+l?C18 zLTQFV&jQB5fv@(rTj55R!lUr+`JwaQHdS)u>co9H*`kW@$w1Io{31epy}}qd_C;Ui z%Dt2Cfpg4ot?GPFKv0eZ39I|K(4N?W)av$v0O(q?ai9(cH};5;l6+|Y{8e+0mt!k3 z12SXTO3o4{=cm_D*lT(+e^gMo(}|FZm1KGS({_dO{$RaOejKnFIR(r%92q<5tws#vy9JLw)asp;EpJq3iTW0QEXGypzw&*8{D<~8U2xD6kNvU-Be*kDIVx$x*1klO9+(H&v+Hn9u<7v| ze~5pac#V<%_T!-c!oc*sjN@F=9lZEB_3S)5T}xHD(5j_Z-Vt`iD2Q%mS2|Qs_~9xG zqjo&_N5^e5jzDj8AR+W(df>fcAP6d9mdda2>CCo{DYx?8^$evLvn&IpUS&ABB?NY} zpX^S#pqKdLuy2Ts7^) zTGm^+flgt8zshm)rhtpwM%_M`ge*S-m=4OoBu)MMojMSOR2T#S}yBN}hJ zao!94xK2RIuS>6xYDM+pQm~_W?}uHVqoF|V!^XTcnzrCr>YMrM#n>V*>i}KQ1{Air zj7Y@5obhz9uf9fu6!!}!Nb|=2BVcv z`47tM4Wf38co@$Uosx{>8teGl2vDAlx#%m2vv-Z3<~%p`kJiNDj_Gb&CI?q9w3>)6 zMV`Oqh}f^VeZbVlqX(IJtv@{Us)>Sn(D!?s`4i}P=8zexs4I`eg!2?o^l=qXnsHqW&P+0m z6R`iFKz3?LaCW>kK9>$H=1r^F#;Oi^_Pm;Y45jXQsF(WIdrqT#n#SWZ;^Bo>8SLxF zX9;T`&93&H8vkrCE?>;#OjYPIk5rGH20sGS@r-cdCAgkb^W5&)OvR3ZoXvJ&vj z5M&a{%bh6#Cgd#V=+Yhbfig#4U>ha)GG(4Lpm|pLt|byIGFhdUTBJV=Z9-KvW_wNZ zmpIpbc{6CVI*J{S+>a`%IcxGTU0b|vHta&l-$~9g%YgtEOCC15yM!#>qOny`6@6tO z%4CpUKHc66@p>Gu@1Ebd&b!b6(Z6ag`VJt2FXR8^)jr_dmqvS`^{rgdZ-G?PE61li zcS^3_6n@(b*b}f#nZbSwHUaZ4f83@9zT;;TgY!uYZ37)J=mTQOJHX#7G_;fki4N!ift1BK)Jx*pd6d7?~lO! zXy&xB1~qawU~jpEJl#GPv@taZ1jjX!9_)%AW^t!`foK_rK?wU}kJ0t0tRq!tadA8T z%DEy^)$B3WvXPFu6dsB5r49 z0;7kt=Mw*@%AgRbTg&EH4ByHpvd(Y0A;2Jn2Bx+Cuip;IMVGR+28aQs3pu^zHscPpL)Ws@!RxPT0Xs=S z=^Itg%{M*Ws%Cv6Q+R9-2B`QsO)|^GFMS5)qJ-mFbH>G6i@btvGRErXFZN@Zv{y09 zW){LU0w4>x)I`A-Ihhe?-<2gSn-bDSMc z0e!OM(8bSvUhNvJ^>!zLJKGH8JuOy$iTeH3*QqsH_8;qLJxobTw$^alGLQYhZjgO5 zmwu6=F$%%EQ1oH7=xM&~b;hHQe`c$W(qB>bv~%uCqR)~EkbjC~-x?h0a9&t@$M&3U za(gD^6A|Mk7Fj7MwDaNEYwP9nSM>>>F0}T$q()0+PWd(|g+&@3RY>0B_ROPsVeNo- zkNc^cQhW=Hes>pOd@LrOwFX`&B;CZs8hsu7KXmgHeS;c^Z!%K(h4_&d$T_Kr)^)M}bh~3m<=-Np2 z{az))FSgTrAG731bgoQ}{#+LaMhB?Ru)5ObL-o`GH8^i_4Gu|kkT5K?j0W>Ji&hgA z#D-M9f90U)p)*CcP=K#QUhs}V=WKzezfemh8FrbgZ zI09ZzyHd*A&*~M#&60^BMJIm>&HIZab10Ho8NFz%>kgao5>u3VGyv=n>IBmA# z9hFYuidkp$xQ%Mwz`nxq@voM$X<7Ao__-~2T|0|Pyci6?{81b?MT{_l(FLP@ zB<~V=tsenkZ#jnHpOe9_d`!3Q-lY`)oj!OqTVar_$JQUikWt0;TTl}?4L;zcEJCI^ zO%dl5aeoX0A28ri`nYm7M8-~qeA?ZYuZwCaKZA_D&9Ia2@|n+_O^v?KUVkaLkNLy9 zEBDTX9JDu4%S4QQyanv{ISQU?s{#`uu_La0uo;sfL6EHiZ5%~BAFB3Jux)|KC#fYP z!|RON+P?*%-p<{4%u^H(z*fahnZ)+VF@e*c+AY4uk(WiKF-|kQ4Nx7)rHn4AEGi%XHni`$ja|& zyCF6nE#sukU7p0>3~ z+a6C4kso2#xnATFKQ5MS3AdeW#k=4H?u>4g47zobcYl3a`aYZcD0G~>NM;S21^0vt zVY(sSRBuzN0bB;KL=^ByQIDhGouOQ|9r@DK-D>CQ(uSHH2C$*XcIv`;TPr+SF6H@@ z&D#3PP;vpOaGij<(%&OU&%&F^btxDbXc}9TU=$>CxR|6mWK|>}xSon5iea~0O50F6r-ev@vVMolC*E?1?Cvk&(k0y z1zIi8Q$U<68jBOZy6E0wU6Mk9FIJ*e*l#<1lt96KlsmfoUCn&N(3hKWi+9vq~D+W_lNJ%BbB3-l;MEv%zfcuE<*O*o4bloChK5;C6d?e_2ZylZZVQTHoQ zt!TuwCOGK zKv8yD6J)NZ>>>72vEBZcuS^0)ZX01|TB-og;OrFJU*u##IeRo>SQvDZ(ulQ70M!JD z+oZF9QNszhmKFcDoFK zv7yMUU)I;IU$i*|**>2Pm$_8{0K&F&*14$V6Z*2Sv>;SboNBvweN<_3KLEaf3slF4h~bffCFr2bav@DVt~}%l-_>en^h4p zQBc#c)vbbs^HCp!NAtj>@KSgA8KrTIjFx18w^iU@DXHt? zeYgsb`!!yBhmSL7QaMJC-Kqrv8e1~}9&j66HQ43FzrQl0c0->8Tkn8VJkEr3F7tp> zU9rWn(Lx?P`Fa>jY``_J%V*om@Dv&u^U?2<@^O)?stkwfP}rpi3Zb^5$Hlu!ufbEN z;Cyg>t>$$-TSd&YM+7O^p2u8^4s?4%&3;TmEyB&RsKMe`DHmX=%?bwA{yc2|UCymT zy)LvOf(T+dRdW+;_b_#*UYMl$8;s#pyX6ggJ1l6sIc5zc=fE&w(g*b$a9Ier%I@gL zK9&Qh(gB&RcqvH~c^ETJW=rKIj=Og=E)0BnxZG_UO(U_6KP3B(DEybu*1wS5e$e3- z$KYkrjymVVqb<9~AkkO#+uyc|9HKIV=Sk{~vzl(#Rpb=1E3wF@b{esg*=vTp^xUm^ z>4EiM?2c78bLx9SVyb9tF9Nv~eDvs~ot8bCARI+Fx_~%&)<*q#xFeQtSSC^P#<0In z#!2QkoDMHg#*h?=W*IiV6$Oq-C@z2<6=!I!0K~30>RH?BG$Y_W{KcMxiVlEHL2;*J zc!OWpewsg>7~_-#3f@cH??#uEhJrRuaXdAvAIctjy5K7ER?Y>=HFn)rF`-bR2+ftF z_dC-78WnHgwdApQy|m#8Fi?J04Ge7_@lLN<<&LsIyG)I8WiAD~Q<;DH>Y-nJ%N2OR zW5f0zx&dF_u0%uHtQ(|g*OE~^Xz%r<;-_lWiVBtoPGF5lu}Spmq``8Z z&YO+pqY*x$5DNAb! z&xtkZO&rz70Bp0J7tq}G*)wfctwMU8VF6T86yTk%8Df?-8?<1{#0{P5-H)@>a@{b&20wif9a-pGe3UlJI+xvh37z7y26uM_PLOy@yJOlqcS7ss( z)rQ)#lf9Mc$cm-nez=+vy(a7yQFtG&O8*P z(9sM+_nDhtV|16)#BG$_VMtTEN9~nmBr|rL&T+GA379y7v0l}H$X*{8(6gxQZ@2eI zp6IFM>R+mt%P<%)DE!NcTh!V?opr=ndvNTAh_?Tr$8UGkpt&B!I|rJs)^ z?IMla@NYnDC+W4h#{>?q-1|3`nhN#K3<;18n|}Kxjw{<5Pju$p$HmBjN!%ZiCT#NG zYc&1KX2N^itn!MGmkRXe`3`tTyXmjR0-NGPQe<;uKk`=5Ft? zXdJRGU*5Lq(RB6RXd&8x-}RaOjKv z^K6-m!FBe(OSF;}3*uBj_wQ}-aKM!iz#np^Kd=a+lP+;bF?B1r@J57z0HRK&bX>p_ zLM2gnLP*X3LpT{Duj3)%Lkg(;Y;IDnJ#CV(Qfr{`gH#mKTVip{=ob23-TFZM$yzeW zFSh_3EC`E$c!x0urbsk>i9o%^(E?M!In}xjovqv4VUAcp(=v3+`ewyuf`p9(PSQQ4gm!Pwx|4e9cQg^G7S`fndoi%+CzFRfB~mht6}hTWvo_5=GKsN zWCeaKv#`;`!f7aL0iEi=#}gM znaVi8o?_>I9#ri@WsifJ`{VdqNt6X`8z_am<{y&^8&&S!YT8}n_nPW9dpJD#5SVe% zN`@DHsb_n+xI==h2MkG;1Ji*jq*hXnR>k($a{aG=g+WclR(LqN0@2-QCF0L#mW?4&6P3)X?y)L4Ee#&))Czy!+4J@xA`R zF$0G)_kFLmt~$@_yp#`>7$bb}=rcqrSjHfON={brlE}75t|3n8#FAPMtKlj!@!GxM zV=S0`Oous9xiWJ!`Ejll-tnzN=>^M$vRg}>rw2%Dqw;k$+~(6gb?C5XuyDWB0z1fEBkY;i7YLAY1cDV!8hrG;8WX)iy zSdqbHqx3^pG&Ndc2}0?RH=tXO$|Ki8R^hG}914SqJ{f9Uebtc%N!%VC{RN_d44zi( z6zaI?YX^#RF9UTk!D+mH-a#;o7;IxIijUVM@}W;XAkyQoAN4LLoNhaI z<(FX0S)ljh2M@Yn7<-sL>;5CmTnlA?<#8BLr(+gvRY9Al8O5IGUP0G*<$QYj35~H% zep{4yrBbIs!Zch*Z#Il*?fcY-H|(3?Q1756S%4rz!s`7-sO)4Ya+;&aO@83QTD#TH zFSALyY!YeqOA<&v2}xafWLqGvC zCwS&=dOKj%S`1o-38B^_Ql139d)vkW2yFT$Up|Au6-k9YPRgg<;=D|=UpMr>l*+Z> zgGq4-V7hEX(L{NAE#P)(Pf8doe{KUahzXe$9@{N+gyoLyZ*`vEY=|)K@Ep7^6GNK^ zB3#AIId~7hCm^?CCI|sppzrV9ox1)lX zQ#%RKTtMKwJ>XAKBI+ftHQxdxBX4C1Wj{*KQJRB8KDjj@^7JU7o8z3@frI~2B#@Xc zucTPu!q+`1buLhQz$<#NJ#QafGy9QNW@Tb(8e^oK@Rt?Oa&*p8nX8vNCGWM~y7bDvN$LD$z6{!UY*@ z5+#t1K#AL(4`~Z{uPMBE5U=%!t1LhG8CitiZ8qLij31!S8S<0N@COy3XVv#)e~9M( zDcSlRy`!=b`5_l_rY!^djGRs>sDJj~rG*Nk2_+*>*vUj^_Y*cUgXmZJ_cPs(9H(=1 zSXM*CaAq&t|9097`<=TF`c)mCu7dLPr%q)MKo^= zBdABLrzH|Y;JI87$9mQ?=G2x_E*EM-l*VN)ms<-LQ!_t4QR8;Ic9pWAMRJzAt95Xg5y_@iN6KNYah1-f7N_2bo~`_;1+U(Pc@qQ|3IW3^4qKRcair|+#q4_{yi zm1b>cF!+e+>L2>sFHNrh@|@3}{l~U5!pdk|q0d>Q{eqr)B2lElS&)w=rdEhX=!ls5 z;)#HaVMFtN@~{FU&3s$DIF5FZvZQ8$?6>jgKwZ7(>zC+$Dq{cnvj6Qa&fZRbzJb1# zaQU+n{eSvF|C=THaYkO=`9J-j|C6Km1@Hd%lZHNS_tE^w|JOyM{!cUL|L=NV-%n9% z=cUcea3}XLE?|9nNk}CBk(Pm~;Vsbx5ey>w9>_XXweu1cLr*FR7FN)2_b{D4YCnG- z{pw9%kJ!fC>j(?BkfFGhjzYhq^<4ql3h-~=aMv<6HufL5^-EN`m-g_Fq?kBrXYL9= z_>@oB^iMU^zLW1osG4{*Nxan4)1nXjM_>N(b-{GO>k-dL2 z?;LyK9_>KbbopNsk^dyCq}BO z_|E)O*}(r>`2Y78{-zhBJ3uq6_`Y6yZ83`F^R=h(Oi`&a zG0IjI4?|`b@E>D!06q(YVot z3l|qne42!*kZxd$NtEIx_1_ZUKZJ)@pP|ptHG%RE9cUXMMp@pGu9K(5YQIn`m;RVe z^18-Ao3E0#i!y~JuFgJcWZhr_NLep_f3d%??s-@AZOmQ22Pn+_b%~-GS-e^xpz{Q^ek$g1WSbFt zh>V^67N)q?93-lcE={^K1rYLy&9T7S$@LdOYaMs~GwhZSx-x@~Q2OPjz(x$&Se_TW z=$=NvfoCq80E4mT+vvGRZJ-=ip8VW#M;Ta+fiYB|0MFI=$+=)n0d5pifKRtzN9)H}kQ{#0H*L`!zxCg#|j{5t0DDo*FtA#HlFs^6gYIfHZ z0cgGTtAsVSRd9v9kpya`>|+06*4~s4*^uV9Fz7ItgZijr z$et?j8(K+%RxXN`-Kaf$!c%B+@H)(8wFDsVQbnL5Q4YoTlg4PSNz2wEW7tu&ss8*4Gjtb0KnqA^7Cn*j8MK z^|lxlUqbr3_((*^h`%uWDKY*mInZ}!a`*gnt$E>O2r;wB$>3lu;#%siHnTf9bk{S^ zX?2`g^ljkB4=QdtyD`=s78e@lBY?z1GgQp)wHWE@#CjpN2=$LsbzNc-Kv?#+#+Q-Dy8m!z2=L&HR^C^RGkWb?Iz1CX=9! zb7*h-w&k$pN&Kq zgHrD54Y!U@PF5C2`wP&XOjG-z3VRhznf6uQwJA{@F7K%-r$uhvj~ntX>4Txj(CyCgL9t9bjLgJ)1{1rG|R&)MUEq=kCvF+4(r21c=@=wA37_I zPE7~PqgICC+___%@*C~%XGD$eNUtD^&35Q|(zPyj3QHB-=$k-}3&5Mmbg!*WSQpqn z`%&z!OS|4x8>dsCVNJ1ia_B3$LHDZmMz8QOU4mO<^JI0WMaFK4nOnM&S*h&cL=DrV@}F6(V|TUk_C;kKt=RkQ+u;f_yW|U5YPI=?F$qnEO~H z_nIM3^;#`by}|;bOE2+7cJfAI)7J6zBK8!6nfXAh{i5guJ!4dDT4fg(sKk zs64Nu$@-AsaP36=#k8OEGNtY%dh+d9XA-xg<%e9tN^}ZBRJ5U5`4tCd?B-?T1e%w{ z)5--{@#+W{JE#}KE=D!EtPKMC~0v6!Bx$7TLd{i^*$&iqDg4Bsao zD8kkR4x4=_8{$OxYA}3xEx%KLi1?02#i&qTm@4I&;=a?b-nlAzks#EU^|?))`lHUF zel;dW-u?|j{Yqq=U9Zg2T>Zthh!8rtmIHipfu^x!S4Go_Qpd@B0LqJ^MQOa3zhu1= ze>v^USHsOt*%)?*?K!qs`{U;aOPlc`u>?288z|g`^K0hGhAJI%n2vQT7EC?%_sv>j z=|jw8uw|A*huMv*4P}+IQ`|VS0H5%JEO%zFH3_TQFgr2@+jl&SH33Ygu+9fFb_j!#Jj#aL~WroTf#YW`ZBeZvTIZy-cz+*$RB%aT#>k8@&;Sp zpfy~^A$t4vgy;IuJglFxHLq-3&l*lxJAtZK{ZVkFx`y=`Utap_9oprj9qn2*zeq?g zHV~x&+Fo-E)I87pYOW^lYC{k4i<^eh?4OwSQF*W?4aWUz#>5|-?(3@{?IB5y$y7N+ zryeh~gPr0aEm$*BS&Sv2^lF-t;V#lFHwiQ*bPkf-Px=uNG-8_uEe3rbJtF1?NjZLI zDX&@Yo1-*(a^ze*x2iD-HA+lL*ld_=2siNMZvkMr>Vd~2U1v7e9v9c6Pfywp03k@y zPucPnW(&tno1JeTG>0^^C!TMHCwpM@l5RWkCQ=02d=)rH5ETwOx;0WNveZijmg zWXpbFn|?F#THO-U!I=V4GO2%K^+q=7ph>@{p+O#CS{inhkZ*1ZXFY#Fo4BiR>&TkV^PLagC82)2XJ|A;or(k6+a86um;~rQs~&^%^!v$B0q&_-Wq$^bLs+S{Zph zhF>n__h8rSHQKpIEpAN1YthNn&2)ztS%EJWOJghZZBciidf4g-9=nojq6)j5S6 zeM{kMZTg7S{Uzg>sbN!y7Ks9x_4oPq8(UXVvssEoyBW}Yt|09SUL^+7o?4${s-3E! zpiI%Snjpb88svId(lP7MC!VW6H^JS&mqxrxz0NO@lf3;oMivn3sozwpRlxLdh0AU6 znHU;ho&@52lO#zv*MN52an2Xz;t(ZLPfS%O;)3St>b(`R9flGUbFO`P+q~5oR@OvA zUWW4rJ3(ej-sg{USG!Nzq83;XcQ{0Kd{CCDGVm+;2f)z!MKIx;<%p!2*B-UiWH>p^ z65U5+zJMfw`MA zo*g|!V(g{}S|f%XlT#1A5A8qbw6-o(@no2uM^LcIM=O6HT(0BKD;k* ze+#&Bign z&}vuURcSyTFh}c~tIiWG1>*D5o~%cVt^xL4REOkN<$|+TLQxYJRA0zh^9zlHcL!6-r(UEBIV^4BEFj!RxTv z39G^IrJ>qWl7|K>5nLcJ8Twwaum-2mZ^ZLz*FwUb*2C?=@FYjG7g*;{j28slb;$S(BG~z1Sr{fOHhqU9-OiiMnr?UY(DNwKc)KW3E(! z9LS%z2U}n%L^w{>ANoBlk?b6Cq?3&gr8s^&h}=-?5-d149jPbds5l zLkVU2GI`@F9Q7dMp)F^XwDKkSDrpwNFF#^DDh$jHT>+>rui4l86`)V9r}~MttN9wg zN~bN>z2(rVFW3ZZ-boZ5xh{_}2@!b{R7yDry8uy@QcLaisDQMImm+MIm51Zcyl-$m z?Pjg93qB!1_CljbC-?nm=l~4Ln(d~GFCJNb6xAcwf-DGh>K8lUT?(CT zpn!fRip;*)Cp-wv;o`1jl23g{saQ7pH>TkHHZU?uj`14@)Yo&a_ zyq}%5S0uON2MRtGs1C)HmHvhMvtqs26?K&6_l-d9R1xSW$Lbw%F`^s>M zQNOQ3aaRMAP>$g7BVracioSWfESvcCIX0ulU%~ImgYHB za#&({Am7l~`TcXW%uzv0PCrU9Sd|q?IfQ`wDw;Sh%)i`*pdJi~JgTR}2 z)QB>hhl?_X1Yzfzc3)i4R(lx;)M~}nSm&1|o2m?F5GX&^%4d`;6B=Iy($+O##^{7A z^3beQ0zX+Qo%CTos5wzF*EA24*{vgMXE)I<|*uZ+1)b@-shRPtyRrW znbcvUh!+s#qzlvq`a-4aYs?~C6=WbYnqA844C^saoB zi7E5l;xC4Fu4$!N-QJaAlz1S#u^q+Uvz8WEq}L#cxRp-%@2Vpf2 zS;(j{Dc0M+D57?^c7I;Owe%4UB;n20LW{ueS9cvV>vx7pw!Org8{d?S{IY?Z1PEsI zO_|v?+UeO`n(xB`j1bz#8*_(aCb@Lq#Q#zddiwkLn^r51V#kz?%+R zXNS_aubr|{T-WJnaIJ~ha=q{L^Gh!=e+S88>yW+iT$aL`zcW}m*@TBu6y>LaEirT- zkW@i9^2L~`v2hT?Kv*gAxhIWe*e7KmhQ#&xbv$g$^fhtSt4<2fm1j}>rd7yGyqr@v zXhtzEvie3(4 zQe!g?DU1->-)09*G*J0-Zv<@+7uP$k2Ov}HqY^wf(o6=vNJp_rr1=s}-;T{ZZRhA{ zUgXeA<=fKF*L*nV-GCc#4l#>bdVKi1{d<9Xi^oM?GK>Xz5R*D|juNtct-F>)$9+F6 zSN-_?SORuEwDdq9A$7e2&-oy^{z+?iW$EtPh>lT5v_2|{Rh3DdXX1)`uYQ$kUV0R? zi}z^~1lM;QZtyKuVjxe$+Q9K>kh2B|B->$0EPH70g68)3*BfXSZa;jyz6AJvdKV>@ z1*5NNu(zntwJYL#1ldp$!5 z$kolnavY|{!?ej6ktwC!$duh1%BKS!9p}VyI_x^)_#&dRGz+@pt08&qJvEl*rrlLp zz~g$c-u+6KGIc{PJRFb?qmE0h5#m4$bedOu(pNTYEL(;T?$*Suad+;tma&9U?cbRd zpt5-V9vWEj^6}eU`;l1oUB;L1`*H!BD$rFwcx8AiL1+bcSWCce(eVEru^+zY8XD9LZg> zBeD=0WgR2qvA^ov?USxu~g`$UOzC_cZWk?}SziZNR9? ztaghXvRynpZo&YGvYs2<5L$84##Muj{`STnFSzp5Ngu}o3KQ_&cw?OIPr5QMv^L7T z5U@0PUEvZCfucD40d&~7;=U$Nyt&LoO_ZpbW+pRKXq$q(@6`+Rkm4WOE3eVtWIqOa zNK4bZuU_5Dvm7u6Y437VXGVNXyuNPtb7>N3_N1Cw^NW{IGQ?l&KYBRTE_B3&$O^D})JL*fTbT|gmO9?tufIff z)Ek-J8GU7VII%voRV6o^Kv3OOX(%C#F*M@h8Y2_giV2bBX+yN5oqf80Fr)F69Q8)o zSTk(RVWJJycgU)lZW{Q{d#W@1?PHg2^;4|-57|pq9cCJ97}6vKP4lp!yp+l6I`S4OA*I&>|gRVdYr9QCL#~zA+ppc3sq*0 z@#*ELw*+y>G6pAk?})hkBnUx<>+wF}rvh24%|~w*KyPI6Cr&>E7ycp=OwVnGa=sJJ zi0otfpiPsdm2oAmvia5S_%2y?R7sZh*swy5xTB8O`JjVi)GflWvpsqTD-bk1?h5R^ ztA=hjzfh>rRD+CFB&r>8#3T?ypXtt27HE3eB|uN!^yN)7kBhB`;gD3Sd=uDxwK7`K znrjVueTpr*+pJP>4O>+T&tvPiHfE?{a=z?h@EeDytW`25RAj4B`3Y>kE|G}lwzQ~m zc%i~WTmy#u(x1AE!RN*lo>-Uh?l zQ7Bi-kt*$;o2(Bs8b|?||8ZLsXFI#TgRZ=Rt`Lws53>@0L@CNfFsVJlMj^@Vqz695 zCAfVEr_=F(OX`>ajf`YeCF0TK&augU@Vi?1X-CcFzZ4NBzg<5A!g+s|Oc}0Y_$AP^KBNbBdKI?3q(GA@oi&Xz!k>)cJDnD-C}k#- z2pqA7mANvTbWQBFu+PHRJvq3Wh%(Xnzr8qiV~%3lCU2D*_h!k46G|-4Wx88WA?c|1 z&WO2q)APWSOY(RU4QCTPL4D(rC{V3NNL*`T#a*voCA6Si#~u$+G$yhTz)GH}On*sT5Tw#_G>&t~fx&onW7Kk#d| z;eE_gF7Y)^6jp%Cg0xQXWRSWsw43#U;fjAdlS1vpr`z6^XFIAMbG<`{Dz4Ijo7=^( z)qc(PppCRer|_ND&cF((olbY8eZ;mEXLuum2j@`qK|#cQn-3u*-9K ztP>5U;wkcjy#mCHZ^R|536+@K*U6wbZlA-bu55NRE#QoBlr)H28)Ud$xx<;kX*HIc zG|Q20UHUB(LDxK9v@a#+WksrZY*x6V=G5&q%1H_H0yzrhGxA^^{n?1DB+jSLq{20QA>cCORznoL9q_In5zPI1WZ6c55lEXbejb%4)PwTDsI%MIB(_cThOa0N-5+%I-JE z+9@DC4QHy1+!-+=50I+`$ER2RfK<_fVC8sw#^MkJnW^>&zk14!gF3^VTS9A`Gqu!3 zGmBX>f!P9uC>=;Q%QU%CL!m`qUPgdi>gNQlUj zL1h55^hPS&51V^Av^`+CKeVdCe)u?+$5p{?8y91h#6`^R-6 zTYi(uGUUy-hpb_{{aBcUTDNk4dcv1-Uazr{4=F>{eFi4W<$I^qEir{0ab^KbS($x^ zTBGMQe{SEe#^^@ita9>bAp4lK;}dX-sCqrMOJNV6Ilo7WppqM;3^qd}g2ssVDArCO1lQ}Y9}##f2UuM$|ly)+;&52;AR{`8#xWH1E)0SzR!8fBKOQsFG@ z8r+#GDwU3_gst&O+%#$D#Gn{y+r4uu^;UZaQWYDGktA`e_<>jpJ9rK@*!Ng;DxccT z`R;dgb-$@t#B=a>06U~^e^bt)*H>c(Cw3gtPLd$m=uev4{!6?>?2-$V`}*=%KTzjWiJNMA3iC}Yn`yrd2yfvh__5=mTBi*U2rWpC$g(0wN8o>$I8|heM z)uJX%beW!|r#@#}C=jb*U7^NXX8xiefxAPF{gGKWRohCLA*@WzD?s^;k;kp!S|9V_ z+n9vRw*`M<`BZ{GO_gHEJhNegZ&(56Q^ zc)i0@uH)uV5(7X(W^3taTT|^%Z6eCZdyR#5AI&As+Zt};4c|%pEf$%2YKaD@)yi#x zM$ImyD!Z(yRrEI(#eZb`0UFgNvJ4a)e~#y6H<>wQ{0$@z*`7a$3{_am+!lJ+?GWpL z>QYN&cu%&WG)mOi+&D2|!1JU8 zRyJ-XkWs@4D1^-BaFQ4cb)P$jf5C>>Sh)!R{7-?1Q(Vldp)tJUwoY(k09oV+=6L~U zkJEtTMRyv;Cd6$&NJ)6;g@a~h$o7B20h4)pYDM-O0Y+e_?hka0{?)r`vO2_G;IK`OieU9C>K=qnin!F@_R z(>jn-AZsYth8Iiwa2UfEzI(z{;2*b0hG>pBe8<^dO!P7fKbG{4V|8cZl%5Q09#TEl zE4otl?_6MS;k6WlQI}l-#fqZNX2z7akoaK)Xp1c&E72O^cxj0)=|RKIQ}lsDTv=o= z*?`}kX!YwibHk=ve(t)z)<#||_lPl;pewJ2!#>F9zOT{7!S!)Q;RiO~gw3V(#Xo#3 z>g2b~s}$s1EPTFHl+UZBRyqp>nr{(W>pN(*r&jUAX?v%bJtiJ@LAAp&^Il2y(s%po z#5sbaoi_QsNd2ak=5BpWt^6aCs8KXlz$?UfFu{j~J3+b4{tz3!uJfg0NK^Zu-p;hY5y(7^ zGgdvc)s%lZ#<$M$5m0PKpj9W!CXgX>k<$V5if@q*0SgFEq4?VZ6G%1hAvMFI# z^Y>XKt9|N!^=tFc+Dv`M8mflKsb)aOb`YfRRoUM3hl~H(M&~deob4l2Rk75MxEw*J z0PH@Gaou>gep9>dXY=0F2TwM~rwxmids*+=n9T>olu1lM^ou&T$@vumZwVN!h0r>h znfB*;jgmDMJ9S@?KYFoXWZZngv4)&e&A;T zS(D@KGO?|6bj=Db%Pv*(pyPI%MyQ>hj^}P4EqByGI;yQefwv6j3FpP2jSqYpYDN5;`QFP>7mL8cJToHm{v&=MXvwcVos}qDS2xLtkPRdfTFBk?jp4Ekhc)hTjKqdvjdaIVWcFg3 zC+bdmpWYgRfpQc?CgJ9wPlwFj>S$or8V68VmQG5qI&oFT9COPp-sF z^oP+OhZ+DiK8v1mQ`~)*xrP<@=zh7*`Wz4-DzC9z-HOuziLav>B2-(T($$fsqphif zKEC7=`=uf%oU12U?MA0y@#bWb=w{cK4iBcDc4ttAQ)P-5E%yxNo%ENJBR-{&(I=XRy= zu!vZkV9EHR0`JIdYm7!T*E`o6!*bXSB#eS|4gRKCd3LCkhf71A?~WW#s??M=DvCA- zzpVMZyYRdG-AiHj3r81_t~-=g=RyPtt$XvmZ`Wn0sc{H1SPn-*N-?~#TSK#Yy|1JU zedl0|C&oY5=aK8PqO1>fIo+pYoO9E!j4hWeU#LQ}^{lGJ(J2*73g113<3()Lvqo2c zW{ollG^N1a-m16mGvK8@%y|{QGX?LhH?K4oK$RnO!al#zf5qeITfbbg+`L{(X|uCm zcYe2Zg;Y_?v0L>ro_3eMi_FF?267-Im6dt^JS%77GZ@$EXa%FmASH_i)5G=hFZl>l z>NpG_B$e@EU@0;#ZC0^!5Ye5DXbUe0KnqEk9)pQx?MtixoYv)p3F$x$L;1HHOd$ef zh%7KkkIl0lf_mU^=RUilZlZVp9w4Z+blvgR>=m;dD;+DeAS1NMI&=qADHV+z$_3-{ z+KCS6nQY3{r{#5&o=5aRp<@4p&PH8#;hMudesx)Qn}<3&bEvRuJj#m&3>q-<&!<9W zola1_^m#se4SS9@Eb#cz>v6s|j&H zbHtO?(PAH$xZ4cIk6NT|tnMR^$Jp^wBNtMy`5K??)|OMy%Gh{XOz1gn3nQ?nnM`b{)YrY1`^@h}(`)*TA6lr_ zHaeaJ;mP-@sn8r%@MC{+h!M?v37JAqdPpx5dtr3Se=NhQ4{~{CB`3RTSyCqfPale#+ zO_?ea8()r9_`cYkVk912$Mm}LgP?HDe01ODoQe(>*6fl~Tz;8Rz@$H4jCV#moJ*3PiswOvOw*_H{Tg)H^&Kb+77X%-+^v?r%vI&9*#-9Ww(SuW?}pf)FSG z#D+;&%Z8J}jQnaw6;~TTcag1k;)*mca}jo_8xj6Mv-3inQRzL#o1BGl*zEZyd!iD6 zCss`#jA&VY?ycu2DaYA`rw9`9FgHgtI3{VaC73p3h>DFol`TRcKJ^NfoZJJTQSB3sq$fuFQlcxx0G&bIsy@bQxn-#ND)97X^dYW#UIM}bEV@bjP z-MSwwb-KbX7c+vU8Ow#y8xs_Ps-8y6356eU*^V~VoNr}fI&+!4|fL8<~ zTbh{qWbGgFX@*61CKqht-M46kP1+jM)!zch27qdMj8rs-=}KiB+^H2eOuP8>#tYB9B2zKrjIwZy>v!;PBANf zZvYZ^Hk)O=JaQq|x9;$ni&`9hvRT|9mqtYBRn|YmFU~JB?^Z3Eh?gO0PZoK1fO3uI z$kOuitL$bJwk@~y55=%1Gv~v9_NzH-ygN#QlYh; z6jNqKO*VNoAvubIQ<$yr@iH$KDrctOULu@HZIaeri(NoDUtN?#__Ou1*8TM=W;K|> zdwYb9NA1kYYwRE4==HAkPm*D-wD$&&S^(y2KQC=JStkM+)<>TE;#0#!6z|!g*D?`@YWevoMnfU3Qu{6-bicTe+ z>s=NIAAi$0q2m>M#Dn6~2HXX>wo?~2sK~4UZaP}7QP8NmvP5kC!7=f1MV4|(pv7Q$ z_qbBtPL0;O)IhG5`GtGhM^?|t(JWfxj)W(u#~OY=Ymk3{I^Gqd*~(8Tg+@<)5N!;p zZzm2GNr0r3-3RJWP$x1rm?H(LXn7zr{-Z<~$(>Lla{}Lz@E-2xr(86x1ryMw(h#=G z{n-q=pc4sh7siR?`WEX-0&55S?q>w56FeSXkTo2#(?Ck6=$VcXMx$&BP$P_ZNA!~$ z@tyvvRiSpK)far-Y=x3^q(}xTL(PRj#qCZevTUK6daQC6Cwn)$i~cfQ044I<=b8Qv zHIlW57iGb0QWJ@Le8;I1VKkS?UE-v($wUgMP7 zbK>YX04{{nE@-9jXL`$uB~bVQDc>oiqV2Y`7(aP&0w9CzuXNy%q~X)N=_OhjOntfp z(0i2GkEeOxEc2DR?G#L8zF&Agn1t%3dc{pwbB(Qw-KN&Yv-bS1{#iMYiVYL8dve#2 zoZ|}4+Sanb{qxfxATq2=jD&>uGYW-TsKF|o`fCHy5?lw?YK2cAvvC#nDR`$MqMb2-eAjSlv8D{?#+|`>si*K|5>pnRhul zXT%wn?o(@PL`8(={ThG2=dQC!hiP_iHl3V7kJ0tG=!buN-7g`w| zvsIh~5(SKIH5+V%j~qOP0t$mYnGyW6Y8TT-<+ll2o~O(JSaG!CirC4U zMYDRbH7NL;G)vJ#EsflhMn1`~Q;)RdIUTAr%7%_XJWCPBEO)sB+0C8`)xx`f3>?6? za6*k)eXt#(2Ai;pYp*+jre;4-vf`P0PbW1(P?CoNyf>U^1=;g+ybf!6#zXX=ktT}E zFxWg=*xd72v-U-bzsH=?AqJ4MVnLqoo|lQaIg@K4ee5nXIj@TNBCw$2dEAb-Hd0|9 zF_ZvyaWCD3yO&{`2 zJV#r|xFedn`moX9d0*wK2AAY=-$|Q8Z5^<481yI;Ta^-QVvDij4keQE&6bRWmah^a zqS_ic)w0H8fcTDppcMR#fY7hyXylCNTpMrC4RLLcE>TEvYU67EnoAm$ zmrS}du2Za{- z2?yK=R@%Y^eiqBxxH_`39Nkty*8uiT3Xxl9c70-NxaZActS2Y3n<|-yN(-&$ zyhxeO^D!MuyYiXXbVJs^X*tiqV$h6Y&|qY~760t~Z#tekL=|90^2(|Q3CH<^!A~>o z$hndNqt-tEkg`!b7{ch6|NTRspx3+0=%%zmFR0V(SwwJo6m}}VzxDO~eGNKo7)O>O zIR><>c?t}H&%Cxsl3-V|adq8#23PG^fh#&KF^F^H1QaDib0>(-2lu=@gf{|rY^*0Y7SvQ2@M z5ri#@kx}=1$%lH@zeUKg8MR&QpStznVAF?fX%v7 z3e_N5cD?wWx|XV($!i&XK2QX0HFhHVv+}t*pPX0DU1AV$O2I*wTPE4Ab*-mvTc_7l zW$#kE$pP$0ywm?pH*cDLQ{a2-&r7&kh38HgaA2x=%ZIX7=zdunCmFYDT`G!F%; zR*9@sI^U8PW)SS98$eZA-f3k|+k3i11uxTi zpX%#I=Fx8$6BS$fv(+VVh^pvjS$LIp81?DC+3F96qtm3{Zn)h-{SIc87i03KIgP_{ z1~0aUF=jC7R5oiH|5dE z)w1_2lzb;XE5p@@wn%_zwb;PlmuLk&!b)}GOyBb(djF&H4jw?AA;b4xIU%X{3Wh7) zWftAi!zHGM1+ZTQpI-;^kJU-=J7EPh6c?eoFpV||2jvRUKptXBfA(|j>A|31x`YUo zYmq@ui72u#Jwz5~#t`rK&pEj;@Pkrc6D(ZTP&6|P{TNqhdj>Bdagt^cw^fA91Guih!5 zuRiv+c$U{0T8?hsCS2(7OjwGaS#qX#>NSnasrt?ob%Pa)tLcyX{7;|qmp^#9;G!+_ zuGjVQ6!hmtp8M|YbEUP2D97MSdfw&5H(Duo(9PBKibdt1c6f(utoP?+tKV1SKfJp7 z0L^*3##h)Gh>pC)66&-qok>DG!mo2%ASVU>O?V*wAUXr0mzN zEA)}4R+u+Z3}njw!{`5Lfq}r8>lww4Qp82z0Nvj1C;#Az{>$UYM9Yf!eWUuk z*mq_Y&WHVVs@%VQ>7U;|J|p!PH(pbzJ*)9(CR_Y|UjOp=|K@6_e9_oXGEb-~9EC=x z_2&$z|I3d1w+GZsgoe1sx?iu2o!x_F3-Qk!Hx5qi?vO=nccYQn!OhyBSc{rO2uUPlKE@W)?pc>T||`{So)Bd`C>g#3rM z5whUCOr()V9X|DFikbyTz_FX~$^ODCgKEwY&9L9z99pRTO^NP5T@xGe-eH2L!D+!o z8ZqD5;MIXPi38~qdko);S8j)~8+S^i<1O8lSvC*m5cK|MA6@sMZi(G^ZgNUL_#irm z#=dde!>M}K@)Ufw=aH*I;IZwa9_<))w$$2NSG+xi% zP<-}e0rM<(x`JlxmbXcZ?!B#9v-q3j>VN*8^0o`PEAJ8M63nF5k_YT~r*!8DS$nzp5VmdH4MJQr}(M+nS|+=(ZvUo3?9?&pdxD2iT?W<9Hm^18*IR zlDwf33-R*&pRed|4h@SahOy1G%#t-2*&t)D7Te&-CH!oM;1(}~G0@;;eLQTg*c!mC zNvD$b)K*RNCibs>oBwibe)tg^LojopQ^@YHynIFgw(! z&L(1iYqL{`Bvz(*@E?rNA20jI?Fl=8|L332 zTK#)$@ju_`?@z==4CiX1ick5_d>^ujNviCl*sn*Ngw3>*}r@Jl@h=+eIwNB{Bw z{_bgcF)F+~*TA@0WZ(1G1^WMnFE(Amf%;zjx@1jSJsiG-fw3$6N$T?@q@}TrbwGU= zzb-8&El}2ZFfxg(KXLk;CuwO+AQq@^@oVq*qyc;$WYA>^#225#KI8r1 b4frGPHs=io<6ZAd3_#%N>gTe~DWM4f42~dl literal 393095 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

FKgpf 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